我有桌子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
答案 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';