我遇到了我的HAVING子句問題。
說明:每個orderno至少有一個rxnum綁定到它。但是每個rxnum都可以有多個腳本(scriptitemcnt)。我的問題是我試圖使用HAVING子句來只有 pull orderno的項目總和小於或等於8.查詢將執行,但它仍然拉取項目總和大於8的訂單。這裏是我的代碼:HAVING SQL Server 2008中的子句問題
SELECT
oh.orderno,
od.rxnum,
SUM(od.scriptitemcnt) as scriptitemcnt,
od.ndctopick,
od.drugdesc,
od.unitno,
od.status,
od.datetimefilled,
od.packingunit,
od.datetimepacked,
oh.totesideinorder
FROM
mck_hvs.oldorderdetails od with(nolock),
mck_hvs.oldorderheader oh with(nolock)
WHERE
oh.orderno = od.orderno
and od.status != 5
and (@dateFrom is NULL or od.datetimepacked >= cast(@dateFrom as datetime))
and (@dateTo is NULL or od.datetimepacked < cast(@dateTo as datetime) + 1)
and oh.totesideinorder = 'N'
and od.packingunit NOT IN (695, 696, 697, 698)
GROUP BY
oh.orderno,
od.rxnum,
od.scriptitemcnt,
od.ndctopick,
od.drugdesc,
od.rxnum,
od.unitno,
od.status,
od.datetimefilled,
od.packingunit,
od.datetimepacked,
oh.totesideinorder
HAVING
SUM(od.scriptitemcnt) <= '8'
ORDER BY
oh.orderno asc,
od.rxnum asc
我們沒有您的表格和數據。嘗試簡化爲更小(更少列)的表格和一些示例數據,這些數據仍然表明問題,然後將其添加(和簡化查詢)到您的問題中。 –
我沒有看到你發佈的查詢有什麼明顯的錯誤。您需要添加一個重現問題的腳本,否則我們將無法爲您提供幫助。 –
SUM(od.scriptitemcnt)<='8'爲什麼'8'是字符串?它應該是INTEGER禮儀? –