ShowRoomId
の値を下のクエリに渡します。 Employees
テーブルの列はShowRoomId
です。複合SQLクエリにWHERE句を追加します。
どうすればいいですか?
私のSQLクエリは、以下の通りである:
SELECT *
FROM Employees A
OUTER APPLY (SELECT TOP 1 *
FROM EmployeeBasics B
WHERE (A.EmployeeID = B.EmployeeID)
ORDER BY B.BasicUpdateDate DESC) AS B
OUTER APPLY (
SELECT C.EmployeeId , count(*) AS TotalAbsent
FROM EmployeeAbsents C
WHERE C.AbsentDate BETWEEN '2016-05-01' AND '2016-05-30' AND A.EmployeeID = C.EmployeeID
GROUP BY C.EmployeeId
) AS C
OUTER APPLY (
SELECT EmployeeId,
SUM(CASE WHEN TransctionTypeId = 1 THEN Amount ELSE 0 END) AS Payment,
SUM(CASE WHEN TransctionTypeId = 2 THEN Amount ELSE 0 END) AS RecoverSalary,
SUM(CASE WHEN TransctionTypeId = 3 THEN Amount ELSE 0 END) AS RecoverCash
FROM dbo.EmployeeAdvances D
WHERE A.EmployeeID = D.EmployeeID
GROUP BY EmployeeId
) AS D
大文字ですべての単語を入力する理由複雑なクエリの最後にWhere句を追加できますか?それはうまくいくはずです。 –
はい、それは仕事です。 Dear Giorgi Nakeuriありがとうございました。 –
ところで:あなたは不適切に 'OUTER APPLY'の種類を使用しています。最初の「OUTER APPLY」は正常です。 EmployeeIDごとに、最新のEmployeeBasicを取得します。しかし、従業員IDによって他の2つのグループ、余分なので、あなたが1つのEmployeeIDによって適用するためです。単純に 'GROUP BY'節とEmployeeIdを' SELECT'節から削除してください。または、「OUTER APPLY」を「LEFT JOIN」に変更し、EmployeeIDの比較を「ON」節に移動します。 –