0

2 つの SQL Server テーブル Invoice と Production があります。Invoice にはこれらの列 (ID、ItemID、Date、AccountNo、Quantity、Type、Price、Total) が含まれており、Production テーブルにはこれらの列 (ItemID、Date、Quantity、Type) が含まれています。 ItemID、Date、Quantity は共通です。請求書データの後に表示される製造日のように、後で日付で並べ替えます。また、非共通フィールドには NULL 値を指定できます) 以下の例と同じ...

どうやってするの?

ID      ItemID     Date          AccountNo      Quantity     Type         Price    Total
------------------------------------------------------------------------------------------
1       4          2013-06-10    123456         10           Invoice      5.00     50.00
2       7          2013-06-10    456789         15           Invoice      3.00     45.00
NULL    4          2013-06-05    NULL           40           Production   NULL     NULL
4

1 に答える 1

1

あなたがしたいfull outer join

select i.ID,
       coalesce(i.ItemID, p.ItemId) as ItemId,
       coalesce(i.Date, p.Date) as Date,
       i.AccountNo,
       coalesce(i.Quantity, p.Quantity) as Quantity,
       p.Type, i.Price 
from Invoice i full outer join
     Production p
     on i.ItemID = p.ItemId and
        i.Date = p.Date and
        i.Quantity = p.Quantity

2 番目のテーブルが最初のテーブルと一致しない場合、 はcoalesce()、キー列が 2 番目のテーブルからのものであることを確認します。

于 2013-06-10T11:01:55.910 に答える