错误它的自我并不混淆,但原因是。
我的代码
DECLARE @Pcode as varchar(20)
DECLARE @PID as int
set @Pcode = 'PJOI015'
set @PID = (select productid from product where product.ProductCode = @Pcode and Deleted = 0)
select 'ProductCode' as Data, ProductCode as Value,'' as Other From Product where productid = @PID
Union All
select 'Descripton' as Data, Description as Value,'' as Other From Product where productid = @PID
Union All
select 'Long Descripton' as Data, FullDescription as Value,'' as Other From Product where productid = @PID
Union All
select 'Alternative Keywords' as Data, AlternativeKeywords as Value,'' as Other From Product where productid = @PID
Union All
select 'Manufactures Code' as Data, ManufacturerCode as Value,'' as Other From Product where productid = @PID
Union All
select 'Main Barcode' as Data, BarCode as Value,'' as Other From Product where productid = @PID
Union All
select 'Barcodes' as Data, Barcode as Value,
(case when BarcodeType = 0 then 'Default'
when BarcodeType = 1 then 'Inner'
when BarcodeType = 2 then 'Outer'
when BarcodeType = 3 then 'Pallet'
when BarcodeType = 4 then 'Other'
end) as Other From ProductBarcode where productid = @PID
Union all
select 'Default Supplier' as Data, Supplier.Name as Value,Supplier.SupplierCode as Other
From Product left join Supplier on Supplier.SupplierID = Product.SupplierID
where productid = @PID
Union all
SELECT 'Other Suppliers' as Data,Supplier.Name as Value, 'StanBuy ' + Cast(StandardBuy as varchar(10)) as Other
FROM ProductSupplierPrice
left join Supplier on Supplier.SupplierID = ProductSupplierPrice.SupplierID
WHERE ProductID = @PID
GROUP BY ProductSupplierPrice.SupplierID, ProductID, StandardBuy,Supplier.Name
Union all
select 'Stocked?' as 'Data', ProductStockOption.Stocked as 'Value',branch.Name as 'Other'
from ProductStockOption left join Branch on Branch.BranchID = ProductStockOption.BranchID
where ProductID = @PID
错误
Msg 245, Level 16, State 1, Line 8
Conversion failed when converting the varchar value 'PJOI015' to data type bit.
困惑
Union all
select 'Stocked?' as 'Data', ProductStockOption.Stocked as 'Value',branch.Name as 'Other'
from ProductStockOption left join Branch on Branch.BranchID = ProductStockOption.BranchID
where ProductID = @PID
如果我删除最后一个联合(上面),代码工作正常。 我可以自己运行最后一个联合,但将@PID更改为实际数字。
答案 0 :(得分:3)
ProductStockOption.Stocked有点字段吗?尝试将其转换为nvarchar并查看是否有帮助。