Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SQL-组合2个表以获得1个表结果_Sql Server 2008 - Fatal编程技术网

Sql server 2008 SQL-组合2个表以获得1个表结果

Sql server 2008 SQL-组合2个表以获得1个表结果,sql-server-2008,Sql Server 2008,假设我有两张桌子 出售 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-0

假设我有两张桌子

出售

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
我不知道如何将两个表日期(SellingDate/BuyingDate)组合成一个表日期


任何帮助都将不胜感激

我假设您想要的输出与您给定的输入不匹配,因此如果这只是合并两个表的情况,那么一个
联合所有
就足够了

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
如果您确实需要这些输出用于给定的输入,您必须向我们提供一些附加信息

  • ProductID 2怎么了
  • iPhone4S系列怎么了
  • 为什么不保留这些

  • 作为旁注和将来的参考,请尽可能地解释和完成。我假设你的否决票是由于你的输出与你的输入不匹配。

    iPhone 4S系列和产品ID 2只是一个例子,说明还有另一种产品。。在我的程序中,我想根据用户选择的产品显示该表。@user1392096-然后您只需向联合添加一个适当的where子句即可。@user1392096-添加了两个可能的示例。如何将SellingDate和BuyingDate放在一个表中?我的意思是,我们如何将这2个表的整个数据移动到一个新表中,在本例中为“日期”?@user1392096-
    INSERT-INTO-date-SELECT*FROM(…UNION-ALL…