[英]SQL alias gives invalid column name
使用以下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
列名稱'startdate'無效。
我無法在WHERE子句中識別我的別名startdate
,但它可以在我的ORDER BY
子句中。 怎么了?
編輯:
不,我不可能將數據類型更改為date
而不是datetime
。 其他地方需要時間。 但在這種情況下,我只需要在特定日期獲取所有帖子,而我真的不關心modifieddate
日期的日期是什么時間:)
也許需要另一種方法而不是convert()?
您不能在WHERE
子句中使用列別名。
將其更改為:
where
CampaignCustomer.CampaignCallStatusID = 21
and convert(varchar, CampaignCustomer.ModifiedDate, 111) = '2011/11/22'
做這個:
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 convert(varchar, CampaignCustomer.ModifiedDate, 111) = '2011/11/22'
order by
startdate desc,
Users.Name asc
你需要在where
子句中添加別名,在上面的查詢中我用你所代表的內容替換你的別名。
您沒有提到您正在使用的SQL Server 版本 - 但如果您使用的是2008或更新版本,則可以使用:
where
CampaignCustomer.CampaignCallStatusID = 21
and CAST(CampaignCustomer.ModifiedDate AS DATE) = '20111122'
您可以將其投射到DATE
- 僅用於此比較。
另外:如果您需要將日期與字符串進行比較,我建議始終使用ISO-8601標准格式表示日期 - ISO-8601將日期定義為YYYYMMDD
並且是SQL Server中唯一始終有效的格式 - 否無論你有什么語言/區域設置。 日期的任何其他字符串表示始終受SQL Server中的設置限制 - 它可能適合您,但我打賭別人,它會破壞....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.