0

この質問は紛らわしいと思うかもしれませんが、単純化してみましょう。

クエリがあります。query1 と呼びましょう。すべての製品のはるかに大きなテーブルがあります。クエリ 1 は次のとおりです。

Item_Code    Description    Order_Qty    Option
1000         Prod1          5            Blue
1005         Prod5          3            Brown
1602         Prod6          1            Red
5620         Prod8          6            Yellow
9865         Prod2          1            Brown
1624         Prod3          3            Brown
9876         Prod12         4            Blue

テーブルには、同じ形式の製品のより大きなリストがあります。青、茶、赤、黄のすべてを含む新しいクエリを作成したいと考えています。動作しますが、常に重複があります。

試行を投稿する方法がわかりませんが、試したことを説明します。新しいクエリを作成し、テーブルとクエリ 1 を含めました。「オプション」が等しい行のみを含めるように、2つの関係を作成しました。しかし、何らかの理由で、結果のクエリは繰り返し出てきます。そのような:

Item_Code    Description    Order_Qty    Option
1000         Prod1          5            Blue
1009  <--    Prod2          6            Blue    
1009  <--    Prod2          6            Blue    
1010  <--    Prod9          7            Blue    
1010  <--    Prod9          7            Blue    
1011  <--    Prod11         9            Blue    
1011  <--    Prod11         9            Blue    
9876  <--    Prod12         4            Blue    
9876  <--    Prod12         4            Blue
1005  <--    Prod5          3            Brown
1005  <--    Prod5          3            Brown
9865  <--    Prod2          1            Brown
9865  <--    Prod2          1            Brown
1624  <--    Prod3          3            Brown
1624  <--    Prod3          3            Brown
9877         Prod99         7            Brown
1111  <--    Prod67         8            Brown   
1111  <--    Prod67         8            Brown    
1602         Prod6          1            Red
1752         Prod56         2            Red
5620         Prod8          6            Yellow

そして最悪の部分は、それが常に繰り返されるとは限らないということです. 多分私はそれに間違ってアプローチしています。

これがtldrのケースかもしれないことは知っていますが、誰かがそれを助けることができれば素晴らしいでしょう.

ありがとう。

4

3 に答える 3

2

おそらく1つのテーブルから列のみを選択している可能性がありますが、結合が十分に具体的ではないため、生成されたデカルト積が結果を乗算するため、クエリは重複を返します。つまり、あなたの唯一の結合は、すべてのoption = option単一blueが他のすべてに結合することを意味するためblueです。おそらく、結合の ON 句でより多くの制約が必要になるでしょう。

を使用distinctすると、おそらく正しい答えのように見えますが、問題を隠しているだけです。

于 2013-08-13T22:07:40.783 に答える