0

在庫が 0 を超える製品のリストを取得するかなり標準的なクエリがあります。

これは正常に機能しますが、特定の SKU の BranchID 31 のすべての負の数の合計を追加する必要があります。

SELECT * FROM Products WHERE
PrimaryPLU IN 
(select SKU FROM Stock 
WHERE BranchID IN (2,12,1,11,0,96,32,13,14,15) 
AND ApplicationID = @site 
GROUP BY SKU HAVING(SUM(Stock)) > 0))

SO BranchID 31 には正の数と負の数を含めることができますが、SKU の負の数の合計を取得する必要があるだけです。これをチェックに追加して、0 を超えているかどうかを確認する必要があります。

どこから始めればよいか分からず、SQL マスターからのサポートを期待していました!

前もって感謝します!

デイブ

4

2 に答える 2

1

これを試して:

SELECT * FROM Products WHERE
PrimaryPLU IN 
(select SKU FROM Stock 
WHERE BranchID IN (2,12,1,11,0,96,31,32,13,14,15) 
AND ApplicationID = @site 
GROUP BY SKU HAVING(SUM(CASE WHEN Stock < 0 AND BranchID = 31 
              THEN Stock ELSE 0 END)) > 0))
于 2012-11-15T14:15:42.660 に答える
0

負の数 (在庫) の絶対値の合計を取り、それらがゼロでないかどうかを確認します。

于 2012-11-15T14:15:49.357 に答える