2011-05-11 34 views
-1

具有m 2個的表空字符串在SQL

1)HR_PAY_EMPLOYEE_PAYSLIP_HISTORY_DETAILS

2)HR_PAY_EMPLOYEE_PAYSLIP_HISTORY

表1具有PAY_HEAD_ID,PAYSLIP_HISTORY_ID和值作爲它的列

表2具有EMPLOYEE_ID,PAYSLIP_HISTORY_ID作爲其列

我映射PAYSLIP_HISTORY_ID上的表1和表2來檢索EMPLOYEE_ID,PAY_HEAD_ID,VALUE

的問題是,所有的員工沒有全部PAY_HEAD_IDs和值

我怎樣才能檢索到所有員工和他們的價值觀的所有PAY_HEAD_IDs(0.00櫃面值不存儲)? ?

回答

0

這取決於您正在使用哪種數據庫軟件,但大多數軟件都具有允許您更改NULL值的NVL()函數。如果它是一個空字符串而不是null,則使用DECODE()(或等效)語句來更改其值。

+0

我米使用IBM DB2 – sagarg 2011-05-11 08:59:17

+0

那麼你一定要COALESCE()函數與DB2的NVL()等效,或使用CASE語句更改空字符串的值。 – Datajam 2011-05-11 09:02:32

1

這可能取決於你使用的SQL方言的略有不同,但你需要使用一個左外連接,這樣的事情:

SELECT 
    EMPLOYEE_ID, 
    PAY_HEAD_ID, 
    isnull(VALUE, 0.00) as VALUE 
FROM 
    HR_PAY_EMPLOYEE_PAYSLIP_HISTORY HISTORY 
    LEFT OUTER JOIN HR_PAY_EMPLOYEE_PAYSLIP_HISTORY_DETAILS DETAILS 
    ON HISTORY.PAYSLIP_HISTORY_ID = DETAILS.PAYSLIP_HISTORY_ID