Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Flera select i en SP?

Postades av 2004-08-31 17:01:52 - Lasse Österberg, i forum sql-server/msde, Tråden har 8 Kommentarer och lästs av 613 personer

Tjena,

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?


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 08:48:21 - Mikael Wedham

Det gör du inte.

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"

/micke


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 09:38:32 - Lasse Österberg

Okej, har du några förslag på hur en sådan fråga skulle se ut?

.Lasse


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 11:03:15 - Mikael Wedham

CREATE PROCEDURE ProcGetStuff
@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

/micke


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 11:51:20 - Per Hultqvist

Du kan använda Union :

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


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 15:24:03 - Lasse Österberg

Gjorde en SP som ser ut som följer:

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.

.Lasse


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 15:25:53 - Peter Andersson

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.

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


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 16:35:00 - Mikael Wedham

Du måste deklarera parametrarna och skicka med dem.
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


Svara

Sv: Flera select i en SP?

Postades av 2004-09-01 17:46:40 - Lasse Österberg

Tack nu fungerar det!

.Lasse


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
570
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies