简体   繁体   中英

SQL Query help needed here

I have a query with 4 columns like the following

(Select PAPROJNUMBER, PACOSTCATID,EMPLOYID, PADT,  PABase_Qty from PTE10001 
where padt between '2017-04-09' and '2017-04-11'
order by PADT) 

and I get the result like this:

PAPROJNUMBER    PACOSTCATID    EMPLOYID        PADT                  PABase_Qty
HOTELEDGER      CONSULTING      ACKE0001        2017-04-09 00:00:00.000 1.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-09 00:00:00.000 2.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-09 00:00:00.000 2.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-09 00:00:00.000 4.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-09 00:00:00.000 6.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-10 00:00:00.000 3.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-10 00:00:00.000 4.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-10 00:00:00.000 2.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-11 00:00:00.000 0.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-11 00:00:00.000 0.00000
HOTELEDGER      CONSULTING      ACKE0001        2017-04-11 00:00:00.000 3.00000

I am looking for something like this as an output

PAPROJNUMBER    PACOSTCATID    EMPLOYID      PABase_Qty 4/9/17 4/10/17  4/11/17 
HOTELEDGER      CONSULTING      ACKE0001         1.00    1.00    3.00   0.00 
HOTELEDGER      CONSULTING      ACKE0001         2.00    2.00    4.00   0.00 
HOTELEDGER      CONSULTING      ACKE0001         2.00    2.00    2.00   3.00 
HOTELEDGER      CONSULTING      ACKE0001         4.00    4.00    0.00   0.00 
HOTELEDGER      CONSULTING      ACKE0001         6.00    6.00   0.00    0.00 

Can you please help with a query like this?

So you need to pivot it out. Add more case statements as necessary:

select PAPROJNUMBER, 
    PACOSTCATID, 
    EMPLOYID,
    sum(case when PADT = '2017-04-09' then PABase_Qty else 0 end) as date_4_9_17,
    sum(case when PADT = '2017-04-10' then PABase_Qty else 0 end) as date_4_10_17,
    sum(case when PADT = '2017-04-11' then PABase_Qty else 0 end) as date_4_11_17
from PTE10001
where PADT between '2017-04-09' and '2017-04-11'
group by PAPROJNUMBER, 
    PACOSTCATID, 
    EMPLOYID

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM