October 15, 2015 at 2:05 pm
I could pivot salesprice but not both salesprice and quantity. Is it possible? thanks
-- sample data
declare @t table (category varchar(100), salesprice money, quantity int)
insert into @t
select 'cat1', 654.00, 56 union all
select 'cat2', 458.00, 45 union all
select 'cat3', 789.00, 24 union all
select 'cat4', 666.00, 77 union all
select 'cat5', 1545.00, 69 union all
select 'cat6', 888.00, 99 union all
select 'cat7', 45.00, 12 union all
select 'cat8', 544.00, 30
select * from @t
-- expected output
select
654.00 as cat1_salesprice
, 56 as cat1_quantity
, 458.00 as cat2_salesprice
, 45 as cat2_quantity
, 789.00 as cat3_salesprice
, 24 as cat3_quantity
, 666.00 as cat4_salesprice
, 77 as cat4_quantity
, 1545.00 as cat5_salesprice
, 69 as cat5_quantity
, 888.00 as cat6_salesprice
, 99 as cat6_quantity
, 45.00 as cat7_salesprice
, 12 as cat7_quantity
, 544.00 as cat8_salesprice
, 30 as cat8_quantity
October 15, 2015 at 2:14 pm
Quick option: Use cross tabs.
select
SUM( CASE WHEN category = 'cat1' THEN salesprice ELSE 0 END) AS cat1_salesprice,
SUM( CASE WHEN category = 'cat1' THEN quantity ELSE 0 END) AS cat1_quantity,
SUM( CASE WHEN category = 'cat2' THEN salesprice ELSE 0 END) AS cat2_salesprice,
SUM( CASE WHEN category = 'cat2' THEN quantity ELSE 0 END) AS cat2_quantity,
SUM( CASE WHEN category = 'cat3' THEN salesprice ELSE 0 END) AS cat3_salesprice,
SUM( CASE WHEN category = 'cat3' THEN quantity ELSE 0 END) AS cat3_quantity,
SUM( CASE WHEN category = 'cat4' THEN salesprice ELSE 0 END) AS cat4_salesprice,
SUM( CASE WHEN category = 'cat4' THEN quantity ELSE 0 END) AS cat4_quantity,
SUM( CASE WHEN category = 'cat5' THEN salesprice ELSE 0 END) AS cat5_salesprice,
SUM( CASE WHEN category = 'cat5' THEN quantity ELSE 0 END) AS cat5_quantity
--...
from @t
The other option is to use a double pivot, but I wouldn't use it myself as it will be slower and more complicated.
October 15, 2015 at 2:58 pm
kiril.lazarov.77 (10/15/2015)
I could pivot salesprice but not both salesprice and quantity. Is it possible? thanks
Not with one pivot, but there is nothing to stop you from using two pivots. That being said, I agree that the crosstab is the better approach.
Drew
J. Drew Allen
Business Intelligence Analyst
Philadelphia, PA
October 16, 2015 at 10:50 pm
Thank you very much!
Viewing 4 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy