推 cloudsan:group? 10/30 18:10
目前的做法是撈出重覆資料
SELECT CLASSB_ID, CLASSM_ID, CLASSS_ID, COUNT(*)
FROM HD.TMP_CALL_CLASS
WHERE PROJECT_ID = 'TPE1103D01'
GROUP BY CLASSB_ID, CLASSM_ID, CLASSS_ID
HAVING COUNT(*) > 1
ORDER BY CLASSS_ID ASC
CLASSB_ID CLASSM_ID CLASSS_ID COUNT(*)
1 B01 0000 0210 2
2 B01 0000 0220 2
3 B01 0000 0230 2
之後在前端程式判斷首筆寫入、重覆時不再寫入,
三個CLASS欄位皆要檢核是否重覆,
其中B、M可重覆,
但B、M欄位值也屬於S分類,故S各存在一筆B、M資料,但倘若S超過一筆也算重覆,
要做的事挺繁瑣就是了 -_-a
→ pooznn:SELECT DISTINCT B,C,D ...不要包含流水號那個欄位不就好了 10/31 22:22
→ blReader:DISTINCT就是各取一筆了,故無法撈出重覆性資料 10/31 22:41
→ blReader:除非你指的是 DISTINCT 搭配 MINUS 與自己比對,這段我已 10/31 22:48
→ blReader:經寫過,是除了上述之外的第二種方式,但想利用SQL篩選 10/31 22:50
→ blReader:直接撈資料排除重覆且僅寫入一次還是無解 10/31 22:51
→ blReader:這段我放在公司沒帶回來,明天再貼 10/31 23:03
有關撈重覆資料,我個人試過是無法使用 DISTINCT 來處理資料 - -"
不過提供方法作為參考,也許可以做出來(?)
以下是另一段檢核,
Excel與db比對撈出「未建檔」的B類:
※ 撈出 B 屬於資料庫總類中未建檔的資料
SELECT DISTINCT CLASSB_ID, CLASSB_NAME /*撈出B類及其名稱*/
FROM TMP
WHERE CLASSB_ID IN (SELECT DISTINCT CLASSB_ID /*EXCEL檔B類*/
FROM TMP
WHERE PROJECT_ID = 'TPE1103D01' /*專案編號*/
MINUS
SELECT DISTINCT CLASS_ID /*資料庫總類*/
FROM CALL_CLASS
WHERE PROJECT_ID = 'TPE1103D01'
AND CLASS_MODE = '1') /*已啟用的類別*/
※ 編輯: blReader 來自: 210.59.164.121 (11/01 12:44)