iT邦幫忙

0

MSSQL INNSER JOIN 條件問題

  • 分享至 

  • xImage

您好:
如下語法
資料檔 INNER JOIN 關帳檔(條件對,才會有資料 的特性 來做),
如下所示
1.若條件 資料檔日期 > 關帳檔日期 ,代表日期非關帳檔日期內,要有資料跑出來,
用這跑出來的資料去做其他事
這基礎邏輯可以做到

但,現在要加上 資料檔日期 <= 關帳檔日期,且 關帳檔STUS_CL欄位=C 的請況下
表是 完全關帳,這樣整筆關聯資料都不會產生
期他要有資料產生

但結果卻達不到要求
所以想請問一下邏輯哪邊錯誤
謝謝

https://ithelp.ithome.com.tw/upload/images/20241120/20104095uNOafky2vF.png

;WITH wk as (
    /*資料檔*/
   SELECT '1' 'workno','20241031' 'hrdate' 
    /*關帳檔*/ 
), cx as ( 
   SELECT '1' 'workno','20241031' 'closedate', '' 'stus_cl'  
)SELECT * 
from wk inner join cx on wk.workno=cx.workno 
where  hrdate> closedate  and cx.stus_cl not LIKE '%C%'
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
allenlai
iT邦新手 5 級 ‧ 2024-11-21 07:12:52
最佳解答
WITH wk AS (
    SELECT '1' 'workno', '20241031' 'hrdate'
), cx AS (
    SELECT '1' 'workno', '20241031' 'closedate', '' 'stus_cl'
)
SELECT *
FROM wk INNER JOIN cx ON wk.workno = cx.workno
WHERE (hrdate > closedate)
   OR (hrdate <= closedate AND (cx.stus_cl IS NULL OR cx.stus_cl <> 'C'))
noway iT邦研究生 1 級 ‧ 2024-11-21 09:28:10 檢舉

您好:
這樣可以
謝謝

我要發表回答

立即登入回答