2013-12-12 24 views
0

我有這個查詢,從多個表中拉出數據。如何使此查詢顯示所有行,即使它們具有NULLS日期?

SELECT ph.list_header_id 
    ,phtl.name 
    ,mtl.segment1 
    ,mtl.description 
    ,pl.list_price_uom_code 
    ,pl.price_break_type_code 
    ,pl.list_price 
    ,ph.currency_code 
    ,pl.start_date_active 
    ,pl.end_date_active 
    FROM qp_list_headers_b ph 
    LEFT OUTER JOIN qp_list_headers_tl phtl ON phtl.list_header_id = ph.list_header_id 
             AND phtl.language = userenv('LANG') 
    LEFT OUTER JOIN qp_list_lines pl ON pl.list_header_id = ph.list_header_id 
    LEFT OUTER JOIN mtl_parameters mp ON mp.master_organization_id = mp.organization_id 
    LEFT OUTER JOIN mtl_system_items_b mtl ON mtl.inventory_item_id = pl.inventory_item_id 
             AND mtl.organization_id = mp.organization_id 
    WHERE ph.list_header_id BETWEEN :p_header_id_start AND :p_header_id_end 
    AND pl.start_date_active BETWEEN :p_start_date AND :p_end_date 

的問題是,如果有在日期爲空,它不拉該行(與同爲也爲其他列時,他們空)

我該如何解決這個問題問題?非常感謝

回答

3

你可以從

AND pl.start_date_active BETWEEN :p_start_date AND :p_end_date 

最後一個條件更改爲

AND (
    pl.start_date_active IS NULL 
    OR pl.start_date_active BETWEEN :p_start_date AND :p_end_date 
) 
相關問題