2009-07-08 13 views
1

私はこの小さな質問に助けを求めています。私のサブクエリでクエリとサブクエリをやっている私はそれをパラメータ化したい。それを行う方法はありますか? 私の照会スクリプトをご覧ください。パラメータを含むサブクエリ?

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 

私はいつもエラーが発生しました。テーブル変数 "@LastTicketStatusID"を宣言しなければなりません。どこでパラメータを宣言しますか?

おかげで、 Nhoyti

+1

明確にしてください - あなたがしたいですか@LastTicketStatusIDは外側のクエリまたはコマンドバッチを実行しているコードから来ますか? –

+0

最初のFROMの後のかっこの後のASは何ですか? –

+0

@Christianが提起した可能性の1つである外部クエリの値を使ってこれを行う方法があるかどうかを知りたいと思っています。 – zanlok

答えて

0

クエリ

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

の最上部にある、このストアドプロシージャのであれば...

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 

そうでない場合

DECLARE @LastTicketStatusID INT 
SELECT @LastTicketStatusID = yourDesiredID 
1

あなたの質問にtinantが、vw_Tickets.isissueはビットフィールドであると仮定すると(またはそれ以外の場合は0または1の値に制約さ。)インラインクエリはLaunchyのの答えを簡素化するために除去することができます。

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

;私は不要なサブクエリのファンではない – zanlok

関連する問題