我的查詢返回了錯誤的結果。請看下面的內容。我爲所有員工獲得相同的工資總額。SQL查詢返回錯誤結果
我想要的結果如下表所示:
S.no Employee_name Emoloyee_id Gross Salary
-----------------------------------------------
1 Abc 001 1234567
2 Xyz 002 2345667
3 Dfg 003 456784
下面是上面查詢示例表。這包括以下視圖和表:
的(a)V_HR_PP_PROCESS_DATA
其包括用於工資總額的Amount
柱
EMPLOYER_CODE TAX_YEAR EMPLOYEE_ID PROCESS_MONTH PD_CODE
-----------------------------------------------------------
RAD 2014 1 1 D001
RAD 2014 1 1 Z001
RAD 2014 3 2 Z500
(b)中I_HR_SYS_DATE_MONTHLY
:
EMPLOYER_CODE TAX_YEAR MONTH
------------------------------
RAD 2014 1
RAD 2014 2
(c)中I_HR_EMPLOYEE_MASTER
:
EMPLOYER_CODE EMPLOYEE_ID EMPLOYEE_NAME
-----------------------------------------------
RAD 1 GODWIN KOMBA
RAD 2 JANE SHIBANDA
RAD 3 ANDREW JOACHIM KIIZA
RAD 4 AHMED IBRAHIM DAHAL
RAD 5 ADAM KAWA
The EMPLOYER_CODE = 'RAD'
在所有這三個表格中都很常見。
請看看查詢過,這是不給結果的要求:
SELECT
b.EMPLOYEE_NAME AS employeename,
(SELECT SUM(AMOUNT)
FROM V_HR_PP_PROCESS_DATA
WHERE EMPLOYER_CODE = A.EMPLOYER_CODE
AND EMPLOYEE_ID IN (SELECT EMPLOYEE_ID
FROM I_HR_EMP_EMPLOYMENT_DTL
WHERE EMPLOYER_CODE = A.EMPLOYER_CODE
AND CONTRACT_TERM = 'F')
AND PROCESS_MONTH BETWEEN 1 AND 10
AND PD_CODE = 'Z500') AS GROSS_CASUAL
FROM
I_HR_SYS_DATE_MONTHLY A
INNER JOIN
I_HR_EMPLOYEE_MASTER b ON b.EMPLOYER_CODE = A.EMPLOYER_CODE
GROUP BY
A.EMPLOYER_CODE, b.EMPLOYEE_NAME
哪個RDBMS是這個呢?請添加一個標籤來指定您是使用'mysql','postgresql','sql-server','oracle'還是'db2' - 或者其他的東西。 –
sql -server是數據庫 – kaurSukh
什麼是** S.no **的預期結果?它來自哪裏?提出的查詢不是上面輸出的那個,是嗎?如果「V_HR_PP_PROCESS_DATA其中包含Gross Salary的Amount字段」,您爲什麼不選擇SELECT E.Employee_name,E.Employee_id,P.Amount AS GrossSalary FROM V_HR_PP_PROCESS_DATA P JOIN I_HR_EMPLOYEE_MASTER E ON P.Employee_id = E.Employee_id'? – Abecee