SELECT C_SousCategorie as y, Enseigne as x, Count(DISTINCT r.Reference_Produit) as val
FROM RawData r, Day d
WHERE r.DayId = d.DayId
AND d.WeekNo BETWEEN MAX(d.WeekNo) AND (MAX(d.WeekNo)-2)
GROUP BY Enseigne, C_SousCategorie
ORDER BY 2, 1 ;
上面的查詢提供了以下錯誤:SQL服務器:問題與BETWEEN子句
Lookup Error - SQL Server Database Error: An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
有圍繞一個更好的辦法?我也嘗試了IN
條款,但我得到了同樣的錯誤。
將該條件移到'having'子句 –
我也建議打破使用順序位置作爲您的訂購條件的習慣。如果您更改查詢,則必須更改where子句或查詢以不同順序返回行。明確並命名列。 –
自上世紀九十年代初以來,「舊式」連接已被棄用。現在是放棄這種語法的時候了。 – Tomalak