1

データベースからレコードを取得してレポートに表示するために使用されるSQLクエリを実行しています。問題は、計算をサブクエリとして配置すると、すべての行に冗長なレコードが表示されるSENOKO列です。私はそれをメイン クエリとして実行してテストしましたが、レポートに示されている数値は正しいです。

サブクエリとして実行

SELECT  whbal.customer, customer.imp_license_no,
         (SELECT SUM(CONVERT(DECIMAL(8, 3), (CONVERT(DECIMAL(8, 3), whbal.qty_good) + 
                     CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * 
                     CONVERT(DECIMAL(8, 3), whbal.std_weight) / 1000)) 
         FROM whbal 
         INNER JOIN customer ON whbal.customer = customer.customer
         WHERE whbal.warehouse = 'SKW') AS SENOKO
FROM     customer 
INNER JOIN whbal ON whbal.customer = customer.customer
WHERE    (whbal.customer BETWEEN @cust1 AND @cust2)
GROUP BY whbal.customer, customer.imp_license_no

メインクエリとして実行

SELECT whbal.customer, 
       customer.psq_level, 
       SUM(CONVERT(DECIMAL(8, 3), (CONVERT(DECIMAL(8, 3), whbal.qty_good) + 
           CONVERT(DECIMAL(8, 3), whbal.qty_slack)) * 
           CONVERT(DECIMAL(8, 3), whbal.std_weight) / 1000)) AS SENOKO
FROM   whbal 
INNER JOIN customer ON whbal.customer = customer.customer
WHERE (whbal.customer BETWEEN @cust1 AND @cust2) AND (whbal.warehouse = 'SKW')
GROUP BY whbal.customer, customer.psq_level

私のクエリの問題を知っている人はいますか? 助けて指導してください 事前に感謝します

4

1 に答える 1