2016-12-14 9 views
0

これまでのところ、これは私がこれまで持っていたものです。私がSUMから得た価値は、結婚していないものよりも結婚の方がはるかに高いです。私はなぜそれが分かりませんか?結合の有無にかかわらずSQLで集計

SELECT 
    SUM(ingrn.passed_qty) 
    FROM 
    erp.fabric_grn ingrn 
    LEFT JOIN 
    erp.fabric_outgrn outgrn 
    ON 
    UPPER(ingrn.fab_id) = outgrn.out_id 
    GROUP BY ingrn.fab_id 

これは、異なる値を与える:あなたが戻ってきているデータセット全体の合計を行っている

SELECT 
    SUM(ingrn.passed_qty) 
    FROM 
    erp.fabric_grn ingrn 
    GROUP BY UPPER(ingrn.fab_id) 
+0

fabric_grnとfabric_outgrnの間に1対多の関係はありますか? – dannmate

+0

@dannmate:はい、そうです。 。実際には、outrnのingrnとyにある特定のidに対してx個の行が存在する可能性があります。そのように定義することはできません –

+0

そのため、総額の異なる結果が表示されます。 – dannmate

答えて

1

例:あなたは上記のデータであなたの最初のクエリをした場合たとえば、

Table: fabric_grn 
fab_id | passed_qty 
1  10 

Table: fabric_outgrn 
fab_id | another_column 
1  xyz 
1  zyx 

:それは10

の合計を返します。しかし、あなたはあなたの2番目のクエリでfabric_outgrnに参加したままにしているので、 2つの行を返します。 10 + 10 = 20になります。

これは、違いを見る理由です。

関連する問題