mysql表里面加入

时间:2010-11-29 16:37:13

标签: sql mysql

我有桌子tblsale 在此表中,我有一个名为BillType的字段,其中包含“s”和“r”(s = sale,r = return)

该表有25条记录。其中,7条记录为“r”,其余记录为“s”。

如何编写查询以便我的结果集包含以下列:

下面的内容

Amount BillType Amount  BillType   Date
 100      s       50       r   29-11-2010
 120      s       20       r   28-11-2010
 130      s       30       r   27-11-2010
 140      s       50       r   26-11-2010

2 个答案:

答案 0 :(得分:1)

您似乎想要的是两个查询,销售和退货并排的结果。它可以用这样的kludge来完成:

       select amount, sale, returnamount, returned, returndate
       from
       (
       select amount, 1 as sale, 0 as returnamount, 0 as returned, '' as returndate
       from sales where billtype='s'
       union
       select 0 as amount, 0 as sale, amount as returnamount, 1 as returned, date as returndate
       from sales where billtype ='r'
       ) 

您可能必须将日期转换为字符串表示形式。联合集需要相同的列结构,因此您可以创建虚拟列。 (您没有要求销售的销售日期。)

或者您可以使用CASE WHEN语句执行此操作。

答案 1 :(得分:0)

我不确定你在问什么,但也许:

SELECT BillNo, VAT, BillType, AfterDiscount FROM tblsale WHERE BillType = 's';