Is a pivot the best way for me to display this data? I want to show id, uuid on the left then show each event1 across the top with a 1 if exists or a 0 if it does not. So look like this
id uuid cycle run walk
1 mn12 1 1 0
2 cr23 0 0 1
3 bb11 1 0 0
This is the syntax I attempted, but it gives me an error of
Incorrect syntax near the keyword 'For'
What should I alter in order to have my data display as desired?
create table #robschneider
(
ID int IDENTITY(1,1) PRIMARY KEY
,event1 varchar(100)
,uuid int
)
create table #bigponyhorses
(
ID int IDENTITY(1,1) PRIMARY KEY
,uuid int
,empid varchar(10)
)
Insert Into #robschneider Values ('cycle', '1'), ('run', '2'), ('walk', '3')
Insert Into #bigponyhorses VALUES ('1','mn12'), ('2','mn12'), ('3', 'cr23'), ('1', 'bb11')
;WITH data AS
(
select *
FROM
(
Select
[rs].[ID],
[bph].[uuid]
[rs].[event1],
CASE when [bph].[uuid] is not null then '1' else '0' end As [Exists]
from #robschneider rs
OUTER APPLY (SELECT *
FROM #bigponyhorses
WHERE [rs].[uuid] = [uuid]) [bph]
) src
pivot
(
[Exists]
For [planname] IN ('cycle', 'run', 'walk')
) piv
)
SELECT
[rs].[ID],
[rs].[event1],
'cycle', 'run', 'walk'
FROM data
Best Answer
I couldn't include
[Intranet].[dbo].[ResourceDevelopementCompletedCategories]
in my test query below but hopefully I have provided enough code for you to understand the syntax you require.UPDATE I have added the
COALESCE
statements to add the 0 values whenevent1
doesn't exist.