我查询了一个包含以下查询的表
select content_type_code_id
, price
, count(price) AS PRICECOUNT
from dbo.transaction_unrated
where transaction_date >= '2012/05/01'
and transaction_date < '2012/06/01'
and content_provider_code_id in (1)
group by content_type_code_id, price
ORDER BY price ASC
产生以下结果集
content_type_code_id price PRICECOUNT
1 -1.99 1
1 -0.99 1
1 0.99 178
1 1.99 786
但我想要一个像这样的结果集:
content_type_code_id price Debits Credits
1 0.99 178 1
1 1.99 786 1
(作为信用的负价格和作为借方的正价格)
答案 0 :(得分:0)
尝试这个
select content_type_code_id
, ABS(price)
, count(IF(price >= 0,1,null)) AS debits,
, count(IF(price < 0,1,null)) AS credits,
from dbo.transaction_unrated
where transaction_date >= '2012/05/01'
and transaction_date < '2012/06/01'
and content_provider_code_id in (1)
group by content_type_code_id, ABS(price)
ORDER BY price ASC
答案 1 :(得分:0)
试试这个:
SELECT content_type_code_id
, price * -1
, COUNT(price) AS PRICECOUNT
, (
SELECT COUNT (deb.price)
FROM dbo.transaction_unrated deb
WHERE deb.transaction_date >= '2012/05/01'
AND deb.transaction_date < '2012/06/01'
AND deb.content_provider_code_id IN (1)
AND deb.price = ( dbo.transaction_unrated.price * -1 )
)
FROM dbo.transaction_unrated
WHERE transaction_date >= '2012/05/01'
AND transaction_date < '2012/06/01'
AND content_provider_code_id IN (1)
AND price < 0
GROUP BY content_type_code_id
, price
, 4
ORDER BY price ASC