私は Microsoft SQL Server を使用していますが、この質問はすべての SQL 言語に当てはまると思います。もしわたしが持っていたら:
SELECT OrderHeaderID
,isNull(Qty,0) AS Qty
FROM OrderHeader
LEFT JOIN (
SELECT OrderHeaderID
,Sum(Qty) AS Qty
FROM OrderDetail
GROUP BY OrderHeaderID
) OrderDetail
ON OrderDetail.OrderHeaderID = OrderHeader.OrderHeaderID
WHERE Criteria = 'X'
次に、条件が適用される前に、すべての OrderDetail 行で GROUP BY が実行されますか? つまり、外部の SELECT だけでなく GROUP BY にも条件を適用するように注意する必要がありますか?
ところで、このコード行に改善が見られた場合は、コメントしてください。