如何在SQL查询中包含Case语句
我想在我的sql查询中合并这个Case语句,但我收到了以下错误:无效的列名:MsgID。是否有人对代码如何无错误运行有任何建议?请注意,我使用的是SQLServerManagementStudio 2008 个案陈述: 原始查询: 提供错误信息的查询:如何在SQL查询中包含Case语句,sql,sql-server,case,Sql,Sql Server,Case,我想在我的sql查询中合并这个Case语句,但我收到了以下错误:无效的列名:MsgID。是否有人对代码如何无错误运行有任何建议?请注意,我使用的是SQLServerManagementStudio 2008 个案陈述: 原始查询: 提供错误信息的查询: 导致问题的不是case语句,而是CTE声明-内部的SELECT语句中没有MsgId列,因此不能将其包含在外部的列列表中。您没有将MsgId从(大概)jnlist暴露为A,这里: FROM ( SELECT ItemId,
导致问题的不是case语句,而是CTE声明-内部的
SELECT
语句中没有MsgId
列,因此不能将其包含在外部的列列表中。您没有将MsgId
从(大概)jnlist
暴露为A
,这里:
FROM ( SELECT ItemId,
CONVERT(VARCHAR(18),[Date]) [Date],
Parms,
[OBJECT]
FROM JnlList
WHERE UserCode = 'Automation') A
因此,您可能只需要将MsgId
添加到SELECT
子句中。如果不是那张桌子上的,告诉我们它是从哪里来的
;WITH CTE AS
(
SELECT CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
RIGHT([Date],3)) [Date],
ItemId,
Parms,
[OBJECT]
FROM ( SELECT ItemId,
CONVERT(VARCHAR(18),[Date]) [Date],
Parms,
[OBJECT]
FROM JnlList
WHERE UserCode = 'Automation') A
)
SELECT ItemId,
CONVERT(DATE,[Date]) [Date],
CONVERT(VARCHAR(10),[Date],108) AS [Time],
SUBSTRING(Parms,1,6) +' Was removed from:' RemovalPath,
[OBJECT] [Move List:]
FROM CTE
WHERE [Date] >= CONVERT(DATE,DATEADD(DAY,-4,GETDATE()))
WITH CTE AS
(
SELECT CONVERT(DATETIME,LEFT([Date],8)+' '+
SUBSTRING([Date],10,2)+':'+
SUBSTRING([Date],12,2)+':'+
SUBSTRING([Date],14,2)+'.'+
RIGHT([Date],3)) [Date],
ItemId,
MsgID,
Parms,
[OBJECT]
FROM ( SELECT ItemId,
CONVERT(VARCHAR(18),[Date]) [Date],
Parms,
[OBJECT]
FROM JnlList
WHERE UserCode = 'Automation') A
)
SELECT ItemId, MsgID,
CONVERT(DATE,[Date]) [Date],
CONVERT(VARCHAR(10),[Date],108) AS [Time],
CASE WHEN MsgID = '1' THEN SUBSTRING(Parms,1,6) +' Was removed from:'
WHEN MsgID = '2' THEN 'This Move List has been cleared of all its media'
ELSE '' -- Optional Else
END AS [RemovalPath],
[OBJECT] [Move List:]
FROM CTE
WHERE [Date] >= CONVERT(DATE,DATEADD(DAY,-4,GETDATE()))
FROM ( SELECT ItemId,
CONVERT(VARCHAR(18),[Date]) [Date],
Parms,
[OBJECT]
FROM JnlList
WHERE UserCode = 'Automation') A