-2

2つのテーブルがあるとしましょう

販売

ProductName    SellingDate    ProductID   
iPhone 4G      2011-05-11     1
iPhone 4S      2011-05-12     2
iPhone 4S      2011-05-13     2
iPhone 4G      2011-05-15     1

購入

ProductName    BuyingDate    ProductID   
iPhone 4S      2011-05-09     2
iPhone 4G      2011-05-10     1
iPhone 4G      2011-05-13     1
iPhone 4G      2011-05-14     1    

この日付をこのように組み合わせる方法は?

ProductName    Date          Status      ProductID   
iPhone 4G      2011-05-10    Buying      1
iPhone 4G      2011-05-11    Selling     1
iPhone 4G      2011-05-13    Buying      1
iPhone 4G      2011-05-14    Buying      1
iPhone 4G      2011-05-15    Selling     1

2 つのテーブルの日付 (SellingDate/BuyingDate) を 1 つのテーブル (Date) に結合する方法がわかりません...

どんな助けでも大歓迎です!!

4

1 に答える 1

1

目的の出力が指定された入力と一致しないと想定しているため、これが両方のテーブルを組み合わせるだけの場合であれば、aUNION ALLで十分です。

SELECT ProductName, Date, 'Buying' AS Status, ProductID FROM Buying
UNION ALL SELECT ProductName, Date, 'Selling' AS Status, ProductID FROM Selling

次のいずれかを使用して、ユーザーが選択可能なproductidを追加できます

SELECT ProductName, Date, 'Buying' AS Status, ProductID FROM Buying WHERE ProductID = 1
UNION ALL SELECT ProductName, Date, 'Selling' AS Status, ProductID FROM Selling WHERE ProductID = 1

またはこれ

SELECT * 
FROM   (
         SELECT ProductName, Date, 'Buying' AS Status, ProductID FROM Buying
         UNION ALL SELECT ProductName, Date, 'Selling' AS Status, ProductID FROM Selling
       ) p
WHERE   ProductID = 1

特定の入力に対してこれらの出力が必要な場合は、追加情報を提供する必要があります

  1. ProductID 2 はどうなりましたか?
  2. iPhone 4Sシリーズはどうなった?
  3. これらが保持されないのはなぜですか?

補足として、また今後の参考のために、できるだけ正確かつ完全に記入してください。あなたの反対票は、出力が入力と一致しない結果であると思います。

于 2012-05-13T12:05:18.737 に答える