【发布时间】:2017-06-23 03:35:05
【问题描述】:
我使用的是 SQL Server Express 2014。 我写了下面的查询。 SQL 在下面的错误消息中说明了这一点,但不知道该怎么做。 “将 varchar 值 'GG' 转换为数据类型 int 时转换失败” 不确定如何使用 CAST 或 CONVERT 解决此问题。
----------------------------------------------- ----------------------------------
USE AdventureWorks2012
GO
DECLARE @Number01 AS INT
DECLARE @Number02 AS INT
DECLARE @Number03 AS INT
DECLARE @Number04 AS INT
DECLARE @Number05 AS INT
DECLARE @Number06 AS INT
DECLARE @Number07 AS INT
SET @Number01 = 150
SET @Number02 = 200
SET @Number03 = 350
SET @Number04 = 450
SET @Number05 = 550
SET @Number06 = 650
SET @Number07 = 800
SELECT A.ProductID ,A.Name ,A.ProductModelID ,A.ProductNumber ,A.MakeFlag ,A.Color ,A.SafetyStockLevel ,A.StandardCost ,A.ListPrice,A.DaysToManufacture ,A.SellEndDate ,A.ModifiedDate ,A.ListPrice
,B.Name ,B.ListPrice ,B.Adjusted_List_Price ,C.ProductDescriptionID ,C.Description ,C.ModifiedDate ,D.ProductID ,D.StartDate ,D.EndDate ,D.ListPrice ,D.ModifiedDate, E.Name,E.CatalogDescription,E.ModifiedDate ,F.ReferenceOrderID ,F.TransactionDate ,F.TransactionID ,F.Quantity
,IIF(A.ListPrice >=@Number01,@Number01 *@Number02 + @Number03, 'GG')
FROM [Production].[Product] AS A
INNER JOIN [Production].[Product_2] AS B
ON A.Name = B.Name
INNER JOIN [Production].[ProductDescription] AS C
ON A.ProductID = C.ProductDescriptionID
INNER JOIN [Production].[ProductListPriceHistory] AS D
ON A.ProductID = D.ProductID
INNER JOIN [Production].[ProductModel] AS E
ON A.ProductModelID = E.ProductModelID
FULL JOIN [Production].[TransactionHistory] AS F
ON A.ProductID = F.ProductID
WHERE A.ProductModelID IS NOT NULL
AND A.Color IS NOT NULL AND F.Quantity IS NOT NULL
----------------------------------------------- ----------------------------------
有人可以请教,因为我真的很困惑。?? 谢谢
史莱克
【问题讨论】:
-
AdventureWorks DB 中的 Production.Product.ListPrice 是一种货币类型。
标签: sql sql-server tsql