SELECT
CCDMS_Company.CompanyID, CCDMS_Company.CompanyName,
CCDMS_Container.ContainerID, CCDMS_Container.Price,
SUM(CASE WHEN CCDMS_Container.ContainerSize = 1
THEN 1 ELSE 0 END) AS size1,
SUM(CASE WHEN CCDMS_Container.ContainerSize = 2
THEN 1 ELSE 0 END) AS size2,
SUM(CASE WHEN CCDMS_Container.ContainerSize = 3
THEN 1 ELSE 0 END) AS size3,
SUM(CASE WHEN CCDMS_Container.ContainerSize = 4
THEN 1 ELSE 0 END) AS size4,
SUM(CASE WHEN CCDMS_Container.ContainerSize = 5
THEN 1 ELSE 0 END) AS size5
FROM
CCDMS_Company
INNER JOIN
CCDMS_Container ON CCDMS_Container.Co_ID = CCDMS_Company.CompanyID
AND CCDMS_Company.CityID = 1
GROUP BY
CCDMS_Company.CompanyID, CCDMS_Company.CompanyName,
CCDMS_Container.ContainerID, CCDMS_Container.Price
HAVING
size1 >=2
AND size2 >= 1
AND size3 >= 1
AND size4 >= 0
AND size5 >= 1 ;
這是我的查詢,即使在我使用where的地方,我仍然收到這個錯誤。Msg 156,Level 15,State 1,Line 22關鍵詞'having'附近的語法不正確
我不知道該怎麼做。
消息156,級別15,狀態1,行22
關鍵字 '具有' 近不正確的語法。
將計算放入CTE /子查詢中,然後用'where引用別名'size *'過濾。 –
我可以理解,'having'子句在語法上不正確,因爲它不理解列別名。但是,這應該會生成「無效的列名稱」錯誤,而不是「錯誤的語法」錯誤。我懷疑你在'having'關鍵字周圍有一個無效字符。 –
我試圖做類似於這個http://stackoverflow.com/questions/17194145/sql-count-based-on-column-value,但我想要做的事情之後,是隻返回公司有相同或更多的指定的數字,我看到這個問題http://stackoverflow.com/questions/15618812/sum-columns-in-mysql-then-use-the-result-in-where-clause,所以我結合他們跳來跳去,它會和我一起工作。 – Nysa