sql >> Databasteknik >  >> RDS >> Sqlserver

Hur PIVOT över upp till 49 fält?

Din första fråga är den närmaste, förutom att du inte bifogade alla case till samlad funktion. Det verkar också som att du inte behöver några kolumner i group by klausul:

select
    [Encounter Number], 
    Proc1 = max(CASE When [Encounter Proc Sequence] = '1' Then [Procedure Code (Enctr)] END),
    SvcDate1 = max(Case When [Encounter Proc Sequence] = '1' Then [Date of Service] END),
    Surgeon1 = max(CASE When [Encounter Proc Sequence] = '1' Then [Surgeon] END),
    Proc2 = max(CASE When [Encounter Proc Sequence] = '2' Then [Procedure Code (Enctr)] END),
    SvcDate2 = max(Case When [Encounter Proc Sequence] = '2' Then [Date of Service] END),
    Surgeon2 = max(CASE When [Encounter Proc Sequence] = '2' Then [Surgeon] END),
    Proc3 = max(CASE When [Encounter Proc Sequence] = '3' Then [Procedure Code (Enctr)] END),
    SvcDate3 = max(Case When [Encounter Proc Sequence] = '3' Then [Date of Service] END),
    Surgeon3 = max(CASE When [Encounter Proc Sequence] = '3' Then [Surgeon] END)
    --- etc.
from EncounterProc
where [Date of Service] between '20090101' and '20091231'
    and [Procedure Code (ENCTR)] is not null
group by [Encounter Number], [Encounter Proc Sequence]



  1. Sammanfoga en kolumn med en grupp i R

  2. Dålig prestanda när trigramlikhet och fulltextsökning kombinerades med Q ind django med postgres

  3. Kan inte ansluta till Oracle-databasen med JDBC om lösenordet har specialtecken

  4. Välj Föräldrapost med alla barn i SQL