Tjena, Det gör du inte. Okej, har du några förslag på hur en sådan fråga skulle se ut? CREATE PROCEDURE ProcGetStuff Du kan använda Union : Gjorde en SP som ser ut som följer: Så här skulle du kunna göra. Använd en tabellvariabel så underlättar det. Du kan välja om du vill ha det som ett resultatset eller som kommaseparerad sträng. Du måste deklarera parametrarna och skicka med dem.Flera select i en SP?
    
    
Skulle vilja ställa flera frågor i en StoredProcedure och få svaren tillbaka i en kommaseparerad sträng.
Typ:
-- hur många som inte har aktiverat sig
select count(uid)
from subscription
where activationdate is NULL
-- hur många som är aktiva
select count(uid)
from subscription
where lastmessage > 0
returnerar 4, 21
förstår ni?
Hur gör man detta?Sv: Flera select i en SP?
    
    
Du kan få tillbaks svaren som:
A. Parametrar till proceduren
B. Ett normalt resultatset
C. En parameter eller resultat som består av endast en kolumn med din kommaseparerade sträng
Ordningen på förslagen är rekommenderad "brahetsordning"
/mickeSv:  Flera select i en SP?
    
    
.LasseSv:   Flera select i en SP?
    
    
@a int OUTPUT, @b int OUTPUT
AS
select @a = count(uid) 
from subscription 
where activationdate is NULL 
select @b = count(uid) 
from subscription 
where lastmessage > 0 
GO
/mickeSv:   Flera select i en SP?
    
    
SELECT Count(a) AS Antal FROM TabellA
UNION
SELECT Count(b) AS Antal FROM TabellB
...
UNION
SELECT Count(x) AS Antal FROM TabellX
Så länge kolumnlistorna på varje SQL-sats matchar varandra när det gäller datatypen så fungerar UNION bra för detta. Resultatet blir alltså x rader i ett datset/recordset med en kolumn (som heter Antal).
/Per
    Sv:    Flera select i en SP?
    
    
CREATE PROCEDURE Spam_GetStats
	@intTotal int OUTPUT,
	@intActive int OUTPUT,
	@intFirst int OUTPUT,
	@intDone int OUTPUT,
	@intNoActive int OUTPUT
AS
	-- hur många sammanlagda prens
	select @intTotal = count(uid)
	from subscription
	
	-- hur många som är aktiva
	select @intActive = count(uid)
	from subscription
	where lastmessage < 15 and lastmessage > 0
	-- hur många som väntar på att få första mejlet
	select @intFirst = count(uid)
	from subscription
	where activationdate is not NULL
	and Lastmessage = 0
	-- hur många som är färdiga
	select @intDone = count(uid)
	from subscription
	where lastmessage = '15'
	
	-- hur många som inte har aktiverat sig
	select @intNoActive = count(uid)
	from subscription
	where activationdate is NULL
GO
Får ett fel när jag försöker köra den,
Procedure 'Spam_GetStats' expects parameter '@intTotal', which was not supplied.
.LasseSv: Flera select i en SP?
    
    
DECLARE	@tblCount TABLE
(
	not_active 	BIGINT,
	active	 	BIGINT
)
-- hur många som inte har aktiverat sig 
INSERT
INTO	@tblCount
(	not_active)
SELECT	COUNT(uid)
FROM	subscription
WHERE	activationdate	IS NULL
-- hur många som är aktiva 
UPDATE	@tblCount
SET	active	= (
	SELECT	COUNT(uid)
	FROM	subscription
	WHERE	lastmessage	> 0)
-- Välj att antingen få som resultatset
SELECT	*
FROM	@tblCount
-- Eller att få som kommaseparerad sträng
SELECT	CAST(not_active AS VARCHAR(16)) + ',' + CAST(active AS VARCHAR(16))
FROM	@tblCount
/Peter
    Sv:     Flera select i en SP?
    
    
Såhär gör du inifrån Query Analyzer (SQL Server)
DECLARE @a int
DECLARE @b int
DECLARE @c int
DECLARE @d int
DECLARE @e int
EXEC Spam_GetStats @a OUTPUT,@b OUTPUT,@c OUTPUT,@d OUTPUT,@e OUTPUT
/micke