/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] Hvordan tæller jeg posterne i en q~
Fra : Stefan Kristensen


Dato : 31-01-03 11:45

Hej NG.

Jeg har en stor SELECT:

SELECT en-hel-masse
FROM en-tabel
INNER JOIN mange-tabeller
WHERE NOT EXISTS(SELECT ...)
ORDER BY ...

Så vil jeg gerne vide om der er fundet nogle poster, men @@ROWCOUNT er altid
0?
Jeg kunne selvølgelig kopiere hele select'en ind i en exists, men det virker
lidt voldsomt.
Nogle forslag?

c",)
Stefan



 
 
Jens Gyldenkærne Cla~ (31-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 31-01-03 12:03

Stefan Kristensen skrev:

> Så vil jeg gerne vide om der er fundet nogle poster, men
> @@ROWCOUNT er altid 0?

Hvornår (hvor) aflæser du @@ROWCOUNT? Det skal lige umiddelbart
efter den sætning der skal undersøges.

Hvis jeg fyrer SELECT @@ROWCOUNT af umiddelbart efter en select
virker den fint nok.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma
(rettelser modtages gerne i dk.kultur.sprog)

Stefan Kristensen (31-01-2003)
Kommentar
Fra : Stefan Kristensen


Dato : 31-01-03 12:12

> Hvornår (hvor) aflæser du @@ROWCOUNT? Det skal lige umiddelbart
> efter den sætning der skal undersøges.

Her er koden. Så vidt jeg kan se, kan rowcount ikke læses tidligere?

-- 310102 created by sak

CREATE PROCEDURE GetOUCodes
@OrgUnit varchar(8),
@Show int OUTPUT
AS
SELECT PA.PackageID, EPA.PackageDescription, PI.ItemID, EPI.Description
ItemDescription, PC.CodeID, EPC.Code, EPC.Description CodeDescription
FROM Packages PA
INNER JOIN EnterprisePackages EPA ON PA.PackageID = EPA.PackageID --
Package Description
INNER JOIN PackageItems PI ON PA.PackageID = PI.PackageID -- Package
Items
INNER JOIN EnterpPackageItems EPI ON PI.ItemID = EPI.ItemID -- Package
Item Description
INNER JOIN PackageCodes PC ON PI.ItemID = PC.ItemID -- Package Codes
INNER JOIN EnterpPackageCodes EPC ON PC.CodeID = EPC.CodeID -- Package
Code Description

WHERE OrgUnit = @OrgUnit AND
NOT EXISTS(
SELECT OrgUnit
FROM RolePackageAccess RPA
WHERE RPA.OrgUnit = @OrgUnit AND
RPA.PackageID = PA.PackageID AND
RPA.ItemID = PI.ItemID
)

ORDER BY PA.PackageID, PI.ItemID, EPC.Code

SET @Show = @@ROWCOUNT
GO




Stefan Kristensen (31-01-2003)
Kommentar
Fra : Stefan Kristensen


Dato : 31-01-03 12:24

DOH!

Jeg havde lavet en fejl i programmet, der læser @Show

Stefan



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste