gpt4 book ai didi

SQL 别名给出无效的列名

转载 作者:行者123 更新时间:2023-12-03 01:08:52 25 4
gpt4 key购买 nike

使用以下 SQL 表达式,但出现错误。

select
CampaignCustomer.CampaignCustomerID,
convert(varchar, CampaignCustomer.ModifiedDate, 111) as startdate,
CampaignCustomer.CampaignID,
CampaignCustomer.CampaignCallStatusID,
CampaignCustomer.UserID,
CampaignCustomerSale.Value,
Users.Name
from CampaignCustomer
inner join CampaignCustomerSale
on CampaignCustomer.CampaignCustomerID = CampaignCustomerSale.CampaignCustomerID
inner join Users
on CampaignCustomer.UserID = Users.UserID
where
CampaignCustomer.CampaignCallStatusID = 21
and CampaignCustomer.startdate = '2011/11/22' <------- THIS
order by
startdate desc,
Users.Name asc

错误:

Msg 207, Level 16, State 1, Line 1
Invalid column name 'startdate'.

我无法识别 WHERE 子句中的别名 startdate,但可以识别 ORDER BY 子句中的别名。怎么了?

编辑:
不,我不可能将数据类型更改为 date 而不是 datetime。其他地方需要时间。但在这种情况下,我只需要获取特定日期的所有帖子,我真的不关心 modifieddate 是日期的什么时间:)

也许需要另一种方法来代替convert()?

最佳答案

不能在 WHERE 子句中使用列别名。

<小时/>

将其更改为:

where
CampaignCustomer.CampaignCallStatusID = 21
and convert(varchar, CampaignCustomer.ModifiedDate, 111) = '2011/11/22'

关于SQL 别名给出无效的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8243283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com