2009-07-08 10 views
1

Je voudrais demander de l'aide sur cette petite requête à moi. Im faire une requête et une sous-requête sur ma sous-requête je veux le paramétrer. Y a-t-il un moyen de le faire? S'il vous plaît voir mon script de requête.sous-requête avec paramètre?

select sum(issue) as [Issue], sum(nonissue) as [NonIssue] 
from 
(
AS 
    select 
     case when isissue = 1 then 1 else 0 end as 'issue', 
     case when isissue = 0 then 1 else 0 end as 'nonissue', 
     LastTicketStatusID 
    from 
     vw_Tickets 
    where 
     LastTicketStatusID = @LastTicketStatusID 
) 
as Tickets 

J'ai toujours eu une erreur Doit déclarer la variable de table "@LastTicketStatusID". Où dois-je déclarer le paramètre?

Merci, Nhoyti

+1

S'il vous plaît préciser - voulez-vous @LastTicketStatusID proviendra de la requête externe ou du code qui exécute votre commande batch? –

+0

Quel est le AS après la parenthèse ouvrante après le premier FROM? –

+0

Je suis intéressé de savoir s'il y a une réponse comment faire avec une valeur de la requête externe, l'une des possibilités posées par Christian. – zanlok

Répondre

0

au sommet de la requête

Declare @LastTicketStatusID int 
set @lastTicketStatusID = #### 
2

Si cela est une procédure stockée ...

CREATE PROCEDURE [dbo].[ProcedureName] 
    @LastTicketStatusID INT 
AS 

select 
sum(issue) as [Issue], 
sum(nonissue) as [NonIssue] 
from (
    select 
    case when isissue = 1 
     then 1 else 0 end as 'issue', 
    case when isissue = 0 
     then 1 else 0 end as 'nonissue', 
    LastTicketStatusID 
from vw_Tickets 
where LastTicketStatusID = @LastTicketStatusID) as Tickets 

Sinon

DECLARE @LastTicketStatusID INT 
SELECT @LastTicketStatusID = yourDesiredID 
1

Not per Tinant à votre question, mais en supposant que vw_Tickets.isissue est un champ de bits (ou autre contrainte à des valeurs de zéro ou un.) la requête en ligne peut être supprimée pour simplifier la réponse de Launchy:

select sum(isissue) as [Issue], 
    sum(1 - isissue) as [NonIssue] 
from vw_Tickets 
where LastTicketStatusID = @LastTicketStatusID 
+0

exactement; Je ne suis pas fan de sous-requêtes inutiles – zanlok

Questions connexes