David,
You should group by ID and use an aggregate function to compute the column
values. I believe this should work:
SELECT ID,
MAX(CASE TheDay WHEN 'Fri -- 1/10' THEN InOut END) AS [Fri -- 1/10],
MAX(CASE TheDay WHEN 'Sat -- 1/11' THEN InOut END) AS [Sat -- 1/11],
MAX(CASE TheDay WHEN 'Sun -- 1/12' THEN InOut END) AS [Sun -- 1/12]
FROM tblTempToTab
GROUP BY ID
-Lam
> Sorry 'bout a basic question, but I have looked so long at this that I
c> an't figure it out.
> I have a table of data that looks like this:
> ID | TheDay | InOut
1> | Fri -- 1/10 | In
1> | Sat -- 1/11 | Am
1> | Sun -- 1/12 | PM
2> | Fri -- 1/10 | AM
2> | Sat -- 1/11 | AM
2> | Sun -- 1/12 | AM
> And would like to pivot it to look like this:
I> D | Fri -- 1/10 | Sat -- 1/11 | Sun -- 1/12
1> | IN | AM | PM
2> | AM | AM | AM
> I have tried many variations of
> SELECT ID,
C> ASE TheDay WHEN 'Fri -- 1/10 ' THEN InOut END as [Fri -- 1/10 ],
C> ASE TheDay WHEN 'Sat -- 1/11 ' THEN InOut END as [Sat -- 1/11 ],
C> ASE TheDay WHEN 'Sun -- 1/12 ' THEN InOut END as [Sun -- 1/12 ]
F> ROM tblTempToTab
G> ROUP BY ID, InOut, TheDay
> But I get result sets looking like:
> ID | Fri -- 1/10 | Sat -- 1/11 | Sun -- 1/12
1> | In | Null | Null
1> | Null | AM | Null
1> | Null | Null | PM
2> | AM | Null | Null
2> | Null | AM | Null
2> | Null | Null | AM
>
A> ny advice, anybody? TIA D. Lewis