if(此品號(A資料表)的供應商(B資料表)為XXX) 才顯示
case when 此品號(A資料表)的供應商(B資料表)為XXX
then 才顯示
else ''
end
不好意思原先敘述不清楚,已新增圖片表達
case when STF.NUM == IDF.NUM , IDF.SUP == '甲'
then 才顯示
else ''
end
這樣對嗎?因為單單看條件片段好像怪怪的
在資料庫的SQL的條件會這樣
case when STF.NUM = IDF.NUM and IDF.SUP = '甲'
then 才顯示
else ''
end
我使用這個語法但是跑了一整天都跑不出來...資料量數十萬筆的有沒有比較不吃資源的作法INSERT INTO testsales(CUST_NO,DIS_SKU_NO,INV_DATE,SALES_AMT,SALES_QTY,SALES_REP) SELECT COPTG.TG004,COPTH.TH004,COPTG.TG003,COPTH.TH037-COPTH.TH047-COPTH.TH202,COPTH.TH008+COPTH.TH024,COPTG.TG006 FROM COPTG,COPTH,INVMB WHERE COPTG.TG003 BETWEEN '20190201' AND '20190305' AND COPTH.TH004 = INVMB.MB001 AND INVMB.MB032 = 'T145';
CalvinKuo,請問這個是不是只能夠針對一個資料表做參數的設定?因為我需要匯出的資料是2.3個資料表條件參數皆符合的值
fufujane
10萬多筆~
的確很難一下跑完呀~
不過你可以改善為left join應該會比較快點~
我查了一下你的SQL好像有個表是相乘呢
例如大都這樣
INSERT INTO testsales(CUST_NO,DIS_SKU_NO,INV_DATE,SALES_AMT,SALES_QTY,SALES_REP)
SELECT COPTG.TG004,COPTH.TH004,COPTG.TG003,COPTH.TH037-COPTH.TH047-COPTH.TH202,COPTH.TH008+COPTH.TH024,COPTG.TG006
FROM COPTG
left join COPTH on COPTG.主鍵 = COPTH.對應鍵(??????)
left join INVMB on COPTH.TH004 = INVMB.MB001
WHERE COPTG.TG003 BETWEEN '20190201' AND '20190305'
AND INVMB.MB032 = 'T145';
但你的有個表是相乘~是一堆資料呢?
INSERT INTO testsales(CUST_NO,DIS_SKU_NO,INV_DATE,SALES_AMT,SALES_QTY,SALES_REP)
SELECT COPTG.TG004,COPTH.TH004,COPTG.TG003,COPTH.TH037-COPTH.TH047-COPTH.TH202,COPTH.TH008+COPTH.TH024,COPTG.TG006
FROM COPTG
,COPTH
left join INVMB on COPTH.TH004 = INVMB.MB001
WHERE COPTG.TG003 BETWEEN '20190201' AND '20190305'
AND INVMB.MB032 = 'T145';