私は過去1ヶ月間に特定のチームによって入力されたConnectWiseタイムエントリを検索するクエリを実行しています。私がしたいのは、1つのチケットにつき1つの結果しか含まないように、以下のクエリを変更することです。datediff(s, time_start, time_end)
の結果が1800を超えている場合のみ変更してください。エラーが発生したので、私のMWEだけが以下のクエリです。SQL Server:サブクエリ、ConnectWiseデータベースの結果の合計を選択します。
SELECT
service.SR_Service_RecID AS "Ticket #",
te.Date_Start AS "Time Entry Day",
m.first_name AS First,
m.last_name AS Last,
DATEDIFF(s, te.time_start, te.time_end) AS "Time (s)"
FROM
dbo.Time_Entry te
LEFT JOIN
dbo.Activity_Class activity ON activity.Activity_Class_RecID = te.Activity_Class_RecID
LEFT JOIN
dbo.SR_Service service ON te.SR_Service_RecID = service.SR_Service_RecID
LEFT JOIN
dbo.Member m ON m.Member_RecID = te.Member_RecID
LEFT JOIN
dbo.SR_Team_Mbr member ON member.Member_RecID = M.Member_RecID
LEFT JOIN
dbo.SR_Team T ON T.SR_Team_RecID = member.SR_Team_RecID
WHERE
m.member_recID IN (SELECT M.Member_RecID
FROM Member M
LEFT JOIN dbo.SR_Team_Mbr member ON member.Member_RecID = M.Member_RecID
LEFT JOIN dbo.SR_Team T ON T.SR_Team_RecID = member.SR_Team_RecID
WHERE T.Description LIKE '%c'
OR T.Description LIKE '%d'
OR T.Description LIKE '%e')
AND activity.Description LIKE 'T%'
AND service.Date_Entered >= DATEADD(MONTH, -1, GETDATE())
GROUP BY
service.SR_Service_RecID, te.Time_RecID, te.Date_Start,
m.first_name, m.last_name,
DATEDIFF(s, te.time_start, te.time_end)
ORDER BY
service.SR_Service_RecID DESC
生成する:
Ticket # Time Entry Day First Last Time(s)
756065 2016-09-28 00:00:00.000 Mr. Smith 1,000
756065 2016-09-28 00:00:00.000 Mr. Smith 560
私が探している:私は、サブクエリの一部にこれを作ってみた
Ticket # Time Entry Day First Last Time(s)
756065 2016-09-28 00:00:00.000 Mr. Smith 1,560
、私は私の問題は、私はトラブルの折り返しを抱えていると思います私の頭ar私が必要とする結果を得るために必要なものの論理
ご協力いただきまして誠にありがとうございます。
あなたの 'group by'から' datediff(s、te.time_start、te.time_end) 'を削除し、その列の' sum'を 'select'に追加してください – techspider