How to show data from rows into columns in SQL Server -
i have written sql query data table. query is:
select terminal_group_name, stn, payment_mode_name, ra_amount #t view_financial_report_2 trdate >= convert(varchar, cast('2017-09-11' date), 111) , trdate <= convert(varchar, cast('2017-09-11' date), 111); select sum(t.ra_amount) val, t.payment_mode_name, t.stn #t t group t.payment_mode_name, t.stn drop table #t; output of sql query is:
val | payment_mode_name | stn 5000| cash | city1 2000| foc | city1 1500| cash | city2 however want data in following format:
stn | cash amount | foc amount city1| 5000 | 2000 city2| 1500 | 0 can me query?
ps: have tried use pivot query query throws deadlock exception:
select terminal_group_name ,stn ,isnull([cash], 0) cash ,isnull([to pay], 0) topay ,isnull([to pay collection], 0) topaycollection ,isnull([credit], 0) credit ,isnull([foc], 0) foc ,isnull([advance], 0) advance ,isnull([customer receipt], 0) customerreceipt (select terminal_group_name ,stn ,payment_mode_name ,ra_amount view_financial_report_2 trdate >= convert(varchar, cast('2017-09-11' date), 111) , trdate <= convert(varchar, cast('2017-09-11' date), 111)) ps pivot (sum(ra_amount) payment_mode_name in ([cash], [to pay], [credit], [foc], [customer receipt], [to pay collection], [advance])) pvt; view_financial_report_2:
select dbo.tbl_terminal_group.terminal_group_name, dbo.view_financial_report_1.stid, dbo.view_financial_report_1.stn, dbo.view_financial_report_1.trdate, dbo.view_financial_report_1.payment_mode_name, dbo.view_financial_report_1.ra_amount, dbo.view_financial_report_1.rd_amount dbo.tbl_terminal_group inner join dbo.tbl_terminal_master on dbo.tbl_terminal_group.terminal_group_id = dbo.tbl_terminal_master.terminal_group_id inner join dbo.view_financial_report_1 on dbo.tbl_terminal_master.terminal_id = dbo.view_financial_report_1.stid; view_financial_report_1:
select stid, stn, convert(varchar(10), booking_datetime, 111) trdate, payment_mode_name, sum(ra_amount) ra_amount, sum(rd_amount) rd_amount dbo.view_booking_summary group stid, stn, booking_datetime, payment_mode_name union select source_terminal_id, source_terminal_name, convert(varchar(10), edit_date, 111) trdate, payment_mode_name, sum(ra_amount * - 1) ra_amount, sum(rd_amount * - 1) rd_amount view_booking_cancel group source_terminal_id, source_terminal_name, edit_date, payment_mode_name union select dtid, dtn, convert(varchar(10), delivery_datetime, 111) trdate, 'cash' payment_mode_name, sum(rasr_amount) ra_amount, sum(rdsr_amount) rd_amount view_delivery_master_report rasr_amount > 0 group dtid, dtn, delivery_datetime, payment_mode_name union select dtid, dtn, convert(varchar(10), delivery_datetime, 111) trdate, 'cash' payment_mode_name, sum(rast_amount) ra_amount, sum(rdst_amount) rd_amount view_delivery_master_report rast_amount > 0 group dtid, dtn, delivery_datetime, payment_mode_name union select dtid, dtn, convert(varchar(10), delivery_datetime, 111) trdate, 'to pay collection' payment_mode_name, sum(rd_amount) ra_amount, sum(rd_amount) rd_amount view_delivery_master_report rd_amount > 0 group dtid, dtn, delivery_datetime union select dtid, dtn, convert(varchar(10), tdate, 111) trdate, 'cash' payment_mode_name, sum(amount) ra_amount, sum(amount) rd_amount view_old_software_sale group dtid, dtn, tdate union select terminal_id, terminal_name, convert(varchar(10), payment_date, 111) trdate, 'customer receipt' payment_mode_name, sum(total) ra_amount, sum(total) rd_amount view_customer_payment_master group terminal_id, terminal_name, convert(varchar(10), payment_date, 111)
try query -
select t.stn ,sum(case when t.payment_mode_name = 'cash' t.ra_amount) ,sum(case when t.payment_mode_name = 'foc' t.ra_amount) #t t group t.stn
Comments
Post a Comment