2017-05-18 6 views
-1

前回の質問と同様に新しい質問を投稿しています。私は、このクエリを使用しています:グループ内のDATEDIFFでエラーが発生しました

SELECT DATEDIFF(SECOND,servicestart,CheckinTime) abondendedTime FROM Location L INNER JOIN 
    Interaction I 
    ON L.Id = I.IdLocation 
WHERE ServiceEnd = '00:00:00.000' 
GROUP BY L.Id, L.Description,DATEDIFF(SECOND,servicestart,CheckinTime) 

、それは私がGROUP BYで

DATEDIFF(SECOND、servicestart、CheckinTime)この部分は必要ありませんが、私は入れていないかのように700行を返しますそれは、GROUP BYで、私はエラーを取得する:

Column 'Interaction.ServiceStart' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. 

私は、この結果は

http://prntscr.com/f993xe

を設定したいです

私はこれらの計算を行う必要があります。

http://prntscr.com/f995dk

私は

SELECT L.Id, 
     L.Description AS 'Location', 
     COUNT(L.Id) Interactions, 
     SUM(CASE WHEN I.ServiceEnd = '00:00:00.000' THEN 1 ELSE 0 END) Abandoned, 
     (SUM(CASE WHEN I.ServiceEnd = '00:00:00.000' THEN 1 ELSE 0 END) *100)/COUNT(I.Id) AbandonedPercent 
     FROM Location L 
     INNER JOIN Interaction I 
     ON L.Id = I.IdLocation 
     GROUP BY L.Id,L.Description 

この部分を行われ、最初のクエリの上に

Average Abandon Time,Members,Repeat Members,Repeat Visits,Repeat/Interaction,Average Wait,Average Service 

を計算する必要がありますしているの平均のためにある時間

+2

質問を編集し、サンプルデータと希望する結果を提供してください。また、コードで何をしたいかを説明します。 –

答えて

0

を放棄私は、これは何だと思います欲しいもの:

あなたの前の質問とは異なり
SELECT L.Id, L.Description, 
     SUM(DATEDIFF(SECOND, servicestart, CheckinTime)) as abondendedTime 
FROM Location L INNER JOIN 
    Interaction I 
    ON L.Id = I.IdLocation 
WHERE ServiceEnd = '00:00:00.000' 
GROUP BY L.Id, L.Description; 

WHEREの列は、DATEDIFF()に使用される列とは異なります。

関連する問題