【发布时间】:2019-06-13 08:28:20
【问题描述】:
我正在尝试在一长串日期 (TxnDate) 中捕获一周中的特定日期。我正在使用的以下命令引发以下错误:
列名“TxnDay”无效。
代码
Select DATENAME(dw, ft.[TxnDate]) as TxnDay, ft.[ProductCode], ft.[Site] from dbo.FactTransactions as Ft
Where ft.[Site] = '1' and TxnDay = 'Tuesday'
编辑:我也尝试了以下错误:
列名“TxnDay”无效。
Select ft.[TxnDate], ft.[ProductCode], ft.[Site] from
dbo.FactTransactions as Ft
Where ft.[Site] = '1' and ft.[TxnDate] in (SELECT DATENAME(dw, ft.
[TxnDate]) as TxnDay where TxnDay = 'Sunday')
【问题讨论】:
-
消息很清楚。表/视图
FactTransactions上是否存在列TxnDay?您的日期解析不是这里的问题。 -
@EzLo No TxnDate 变为 TxnDay
-
在这两种情况下,您都在通过
TxnDay对您的WHERE进行过滤,您应该重复您在选择时使用的相同表达式以改为TnxDay。 -
@EzLo 是的 - 确实是重复的!
Select DATENAME(dw, ft.[TxnDate]) as TxnDate, ft.[ProductCode], ft.[Site] from dbo.FactTransactions as Ft Where DATENAME(dw, ft.[TxnDate]) = 'Tuesday'
标签: tsql