2

こんにちは私は結果セットの平均を計算しようとしていますが、count(*)を選択しているクエリは、1月1日から31日までの毎日の呼び出し数を返すため、ほぼ20行が返されます。結果の平均を計算してから、SET @abc =(以下のクエリ)のような変数に値を割り当てるにはどうすればよいですか?SQLServer2005を使用しています。

SELECT avg(Calls) AS average 
FROM
(
     SELECT COUNT(*) Calls      
     FROM abc 
     WHERE CallDate  BETWEEN '20120101'  AND '20120131' 
     AND datepart(Hh,TranscribeDateTime) = '07' 
     AND datepart(Mi,TranscribeDateTime) BETWEEN '00' AND '59'  
     AND AppID = 123 AND Status ='T' 
     GROUP BY calldate
)

そして、私のアプローチが間違っている場合は、1つ提案してください。ありがとうございました

4

1 に答える 1

6

AS average派生テーブル(SQL Serverで必要)のテーブルエイリアスと割り当てステートメント(変数に割り当てる場合は列のエイリアスを作成することもできません)が欠落しているようです。

DECLARE @ABC INT;

SELECT @ABC = AVG(Calls)
FROM
(
     SELECT COUNT(*) Calls      
     FROM abc 
     WHERE CallDate  BETWEEN '20120101'  AND '20120131' 
     AND datepart(Hh,TranscribeDateTime) = '07' 
     AND datepart(Mi,TranscribeDateTime) BETWEEN '00' AND '59'  
     AND AppID = 123 AND Status ='T' 
     GROUP BY calldate
) T  /* <-- Alias here */
于 2012-12-19T20:30:43.760 に答える