Har en sp som kör 2st sql frågor, nu får jag ut dem som två recordset men jag skulle vilja få ut dem ett bara
sql1='select count(antal) as antal1 from personer1'
sql2='select count(antal) as antal2 from personer2'
SP Kod nu:
exec (@SQL1)
exec (@SQL2)
Skulle vilja så här typ
select @antal1 = (exec (@SQL1))
select @antal2 = (exec (@SQL2))
select @antal1 as antal1, @antal2 as antal2
Men det är lite syntax fel, någon ide?
emissionMedlem sedan dec. 19996 721 inlägg Det finns många varianter.
Du kan göra en UNION
select count(antal) as antal1 from personer1
union
select count(antal) as antal2 from personer2
Då får du ut ett recordset med två rader
eller en cross join med distinct count
select count(distinct personer1.personid) as antal1,count(distinct personer2.personid) as antal2 from personer1,personer2
...men en cross join är inte särskilt bra ur prestandahänseende. Om det finns något som kan joina personer1 med personer2 så blir det dock ingen cross join, och då kan detta vara ett vettigt alternativ
...eller som du är inne på
declare @antal1 int,@antal2 int
select @antal1 = count(antal) from personer1
select @antal2 = count(antal) from personer2
select @antal1 as antal1, @antal2 as antal2