Sql server 在CASE语句和JOIN 3表中SQL为空?
使用表格:Sql server 在CASE语句和JOIN 3表中SQL为空?,sql-server,Sql Server,使用表格: [AdventureWorks2012].[Production].[ProductInventory], [生产][产品], [生产][位置] 栏目: ProductID, 名称, ProductLine(如果为空值,则显示N/A;如果为M,则显示“Mountain”;如果为T,则显示“Touring”;如果为其他,则显示“others”), SellStartDate, LocationID, 可用性, shelf, 数量 要求:获得2006年销售开始日期sellstartdat
[AdventureWorks2012].[Production].[ProductInventory]
,[生产][产品]
,[生产][位置]
栏目:
ProductID
,名称
,ProductLine
(如果为空值,则显示N/A;如果为M,则显示“Mountain”;如果为T,则显示“Touring”;如果为其他,则显示“others”),SellStartDate
,LocationID
,可用性
,shelf
,数量
要求:获得2006年销售开始日期sellstartdate
的产品,且其位置的总可用性小于50
请帮助更正我的大小写,(大小写为NULL)并连接3个表:
如果我没有错,那么你看起来像下面这样
SELECT Name, CASE WHEN ProductLine IS NULL THEN 'N/A'
WHEN ProductLine='M' THEN 'Mountain'
WHEN ProductLine='T' THEN 'Touring'
ELSE Others END ProductLine,
SellStartDate,
[Location].LocationID,
Availability AS 'Total Availability'
FROM Production.Product
INNER JOIN Production.ProductInventory ON Production.Product.ProductID=Production.ProductInventory.ProductID
INNER JOIN [Production].[Location] ON Production.Product.LocationID=[Production].[Location].LocationID
WHERE SellStartDate BETWEEN '1/1/2006' AND '31/12/2006'
AND Availability < 50
选择名称,如果ProductLine为空,则选择“N/A”
当ProductLine='M'然后是'Mountain'
当ProductLine='T'时,然后是'Touring'
其他人结束生产线,
销售开始日期,
[位置]。位置ID,
可用性为“总可用性”
从生产。产品
内部连接Production.ProductInventory ON Production.Product.ProductID=Production.ProductInventory.ProductID
Production.Product.LocationID=[Production].[Location].[Location]上的内部联接[Production].[Location]
其中SellStartDate介于“2006年1月1日”和“2006年12月31日”之间
和可用性<50
共享您的sql而不是sql查询图像谢谢您的帮助。谢谢您的帮助。收到以下消息:Msg 207,级别16,状态1,第10行无效列名'LocationID'。Msg 209,16级,状态1,第1行不明确的列名“name”。@Ann请根据您的表结构修改查询。对于Name
使用Product.Name
在中选择语句哦,我知道了。再次感谢您的指导!
SELECT Name, CASE WHEN ProductLine IS NULL THEN 'N/A'
WHEN ProductLine='M' THEN 'Mountain'
WHEN ProductLine='T' THEN 'Touring'
ELSE Others END ProductLine,
SellStartDate,
[Location].LocationID,
Availability AS 'Total Availability'
FROM Production.Product
INNER JOIN Production.ProductInventory ON Production.Product.ProductID=Production.ProductInventory.ProductID
INNER JOIN [Production].[Location] ON Production.Product.LocationID=[Production].[Location].LocationID
WHERE SellStartDate BETWEEN '1/1/2006' AND '31/12/2006'
AND Availability < 50