2017-10-03 10 views
0

複数のテーブルでレコードを結合するクエリを作成しました。 購入注文テーブルに発注、発注項目グループごとのエラー

[ Note: The column names are not original names, it just for a model data] 

によって名付けられたテーブルは、このような注文の詳細を持って、

id date  vendorid totalitems totalqty grossamnt netamnt taxamt 
---------------------------------------------------------------------------- 
1 03/10/17  00001  2   6   12000  13000 1000 

発注項目表では、このような注文の詳細を持っています、

poid id productcode qty rate tax(%) taxamnt total 
-------------------------------------------------------- 
1  1  12001  3 6000 2.5 500  6500 
2  1  12000  3 6000 2.5 500  6500 

My Qu ERYは、

select po.POID,po.SupplierId,po.TotalItems from 
    PurchaseOrder po, PurchaseOrderItem poi where po.POID=poi.POID group by 
    po.POID, po.SupplierId,po.TotalItems 

クエリ戻り、

id vendorid totalitems 
-------------------------- 
1  00001  2 
1  00001  2 

予想される出力があり、あなたは時代遅れの方法を結合を使用している

id vendorid totalitems 
------------------------ 
1 00001 2 
+0

あなたは、そこにいくつかの非常に時代遅れの接合方法を考え使用していますそれに対して助言する。また、参加していますが、結合されたテーブルを使用することはありません。それはなぜですか?結合を削除し、何が起こっているかを見てください。 – Leonidas199x

+0

ああ...私は今それをチェックしてみましょう。 –

+0

その仕事の仲間。しかし、私はいくつかの疑問を持っています –

答えて

0

あり、ここで読んだことがある:

ANSI vs. non-ANSI SQL JOIN syntax

あなたはまた、別のテーブルに参加し、それを使用することはありません:

select po.POID,po.SupplierId,po.TotalItems 
from PurchaseOrder po, PurchaseOrderItem poi 
where po.POID=poi.POID 
group by po.POID, po.SupplierId,po.TotalItems 

だけ指定できます。

select po.POID,po.SupplierId,po.TotalItems 
from PurchaseOrder po 
group by po.POID, po.SupplierId,po.TotalItem 

OR

select DISTINCT 
     po.POID, 
     po.SupplierId, 
     po.TotalItems 
from PurchaseOrder po 
+0

集計関数がない場合、なぜGroup By節ですか? –

+0

それはあなたがそれを頼んだものでグループ化するので、結果が違うはずです。確かにこれはDISTINCTに置き換えることができました - それを含めるために私の答えを更新しました。 – Leonidas199x

関連する問題