我做出的Oracle 11g數據庫HAVING子句不工作
SELECT DISTINCT JOC_FIN_CLTH_DFCT_LOT.LOT_NO,
I.ISSUE_DATE,
R.PROC_DESC,
R.RECV_DATE,
M.DFCT_DATE,
JOC_FIN_CLTH_DFCT_LOT.FCD_MAIN_ID
FROM JOC_FIN_CLTH_DFCT_LOT,
JOC_FIN_CLTH_DFCT_MAIN M,
JOC_DAILY_FABRC_RECV_FOLD R,
JOC_LOT_ISSUE_REG I
WHERE M.FCD_MAIN_ID = JOC_FIN_CLTH_DFCT_LOT.FCD_MAIN_ID
AND R.LOT_NO = JOC_FIN_CLTH_DFCT_LOT.LOT_NO
AND I.LOT_NO = R.LOT_NO
AND I.LOT_YEAR = R.LOT_YEAR
AND JOC_FIN_CLTH_DFCT_LOT.LOT_YEAR = R.LOT_YEAR
AND JOC_FIN_CLTH_DFCT_LOT.LOT_YEAR = '1213'
AND JOC_FIN_CLTH_DFCT_LOT.FCDL_ID IN
( SELECT MIN (DFCT_LOT.FCDL_ID)
FROM JOC_FIN_CLTH_DFCT_LOT DFCT_LOT, JOC_FIN_CLTH_DFCT_MAIN DFT_MAIN
WHERE DFCT_LOT.FCD_MAIN_ID IN (DFT_MAIN.FCD_MAIN_ID)
GROUP BY DFCT_LOT.FCD_MAIN_ID)
ORDER BY JOC_FIN_CLTH_DFCT_LOT.FCD_MAIN_ID
此查詢這2秒內沒有檢索數據。行= 5100 但是當我在我的前端應用程序中使用此查詢需要太多時間,以便排除故障後,我發現子查詢原因的問題時,數據檢索,所以我簡化此查詢
SELECT DISTINCT DFCT_LOT.LOT_NO,
I.ISSUE_DATE,
R.PROC_DESC,
R.RECV_DATE,
M.DFCT_DATE,
DFCT_LOT.FCD_MAIN_ID
FROM JOC_FIN_CLTH_DFCT_LOT DFCT_LOT,
JOC_FIN_CLTH_DFCT_MAIN M,
JOC_DAILY_FABRC_RECV_FOLD R,
JOC_LOT_ISSUE_REG I,
JOC_FIN_CLTH_DFCT_MAIN DFT_MAIN
WHERE M.FCD_MAIN_ID = DFCT_LOT.FCD_MAIN_ID
AND R.LOT_NO = DFCT_LOT.LOT_NO
AND I.LOT_NO = R.LOT_NO
AND I.LOT_YEAR = R.LOT_YEAR
AND DFCT_LOT.LOT_YEAR = R.LOT_YEAR
AND DFCT_LOT.LOT_YEAR = '1213'
AND DFCT_LOT.FCD_MAIN_ID IN (DFT_MAIN.FCD_MAIN_ID)
GROUP BY DFCT_LOT.FCDL_ID,
DFCT_LOT.FCD_MAIN_ID,
DFCT_LOT.LOT_NO,
I.ISSUE_DATE,
R.PROC_DESC,
R.RECV_DATE,
M.DFCT_DATE,
DFCT_LOT.FCD_MAIN_ID
HAVING DFCT_LOT.FCDL_ID in MIN (DFCT_LOT.FCDL_ID)
ORDER BY DFCT_LOT.FCD_MAIN_ID
這是簡化的形式以上查詢但行數增加 no.of rows = 5578但我知道實際沒有。行= having子句5100 不在這裏工作 親切看着我的查詢,並引導我
'min'返回一個值,並且您正在使用'in'? –
所以我用它呢? – usman
爲什麼不只是'='? –