2011-01-31 22 views
3

を選択...リターン2 COUNT(*)の結果は、私は、ストアドプロシージャを持っていると私はそれが次を返したい

TotalItems | FailedItems 
@totalItems | @failedItems 

where --> @totalItems = `SELECT COUNT(*) 
    From dbo.OdsBuild AS P 
    where P.StartTime Between @StartDate and @EndDate 
    AND P.Official = 1` 

where --> @failedItems = `SELECT COUNT(*) 
    From dbo.Items AS P 
    where p.StartTime Between @StartDate and @EndDate 
    AND P.Official = 1 AND (P.Result = 7 OR P.Result = 8 OR P.Result = 14)` 

答えて

4

をHAVING SELECT COUNTをサブクエリする

SELECT 
    (SELECT COUNT(*) 
     From dbo.OdsBuild AS P 
     where P.StartTime Between @StartDate and @EndDate 
     AND P.Official = 1) totalItems , 
    (SELECT COUNT(*) 
     From dbo.Items AS P 
     where p.StartTime Between @StartDate and @EndDate 
     AND P.Official = 1 AND (P.Result = 7 OR P.Result = 8 OR P.Result = 14)) failedItems 

すでに変数を設定している場合は、もちろんSELECT COUNTを繰り返す必要はありません。

SELECT @totalItems AS totalItems, @failedItems AS failedItems 

SELECTステートメントでは、FROM句なしで単独で使用することができます。

0

あなたが探しているものGROUP BYであると

2

procの最後でこれらの変数を選択することはできませんか?

SELECT @totalitems AS TotalItems, @faileditems AS FailedItems