2013-11-01 47 views
1

我正在做sql查詢,它用於從數據庫檢索記錄以顯示在報告中。問題是當我把我的計算作爲子查詢,SENOKO列顯示與冗餘記錄在每一行。我已經做過主要查詢,報告中顯示的數字是正確的。SQL子查詢錯誤(圖中顯示的數據不正確)

DO作爲子查詢

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 

DO作爲主查詢

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 

有沒有人知道什麼是我的查詢問題?請幫助和指導 在此先感謝

+0

PLS顯示這兩個例子 – LINQ2Vodka

+0

@jim請參考我首先的編輯question.thanks – user2901955

+0

,你按不同的領域,這樣的結果將不等於 – LINQ2Vodka

回答

1

在第一種情況下,您計算SENOKO爲每個加入表的客戶/ imp_license_no。在第二種情況,你calc下聖諾哥每對客戶/同表psq_level所以導致行數可能會不等於

UPDATE
看起來像子查詢你不過濾此: (whbal 。客戶@之間cust1和@ cust2)

+0

我已經改變到同一組。但子查詢仍然在每一行顯示冗餘記錄..請幫助..預先感謝 – user2901955

+0

還是一樣的羣組。 – LINQ2Vodka

+0

還是同一組的意思? – user2901955