Запрос ниже занял 2 мин. выполнить, но при замене 'AND TO_CHAR (BM.BILL_DATE :: date,' YYYY-MM ') =' 2020-07 '' на 'AND bm.BILL_DATE :: date between to_date (' 2020-07-01 ',' ГГГГ-ММ-ДД ') и to_date (' 2020-07-31 ',' ГГГГ-ММ-ДД ')' требует 2 se c для выполнения.
версия: "EnterpriseDB 10.1.5 on x86_64-p c - linux -gnu, скомпилирован g cc (G CC) 4.4.7 20120313 (Red Hat 4.4.7-18), 64-битный "
I хотите передать только один параметр в запрос, например «ГГГГ-ММ», и получить o / p.
введите описание изображения здесь
'''select distinct bm.invoice_no,
'GST HOLD',
original_inv_no,
(select distinct bill_date
from "CBF".bill_master
where invoice_no = original_inv_no) BILL_DATE,
case
WHEN TO_NUMBER(BM.TAX_TOTAL) = 0 THEN
'Y'
ELSE
'N'
END TAXABLE_FLAG
from "CBF".bill_master BM, "CBF".product_details PD
where BM.INVOICE_NO = PD.INVOICE_NO
and isactive = 'P'
and bill_gen_system = 'HOLD'
and MODIFIED_PROCESS IN ('AUTO_DEMERGE', 'MANUAL_DEMERGE')
AND TO_CHAR(BM.BILL_DATE ::date, 'YYYY-MM') = '2020-07'
AND PD.original_inv_no IS NOT NULL
UNION
select distinct bm.invoice_no,
'GST HOLD',
original_inv_no,
(select distinct bill_date
from "CBF".bill_master
where invoice_no = original_inv_no) BILL_DATE,
case
WHEN TO_NUMBER(BM.TAX_TOTAL) = 0 THEN
'Y'
ELSE
'N'
END TAXABLE_FLAG
from "CBF".bill_master BM, "CBF".adj_details PD
where BM.INVOICE_NO = PD.INVOICE_NO
and isactive = 'P'
and bill_gen_system = 'HOLD'
and MODIFIED_PROCESS IN ('AUTO_DEMERGE', 'MANUAL_DEMERGE')
AND TO_CHAR(BM.BILL_DATE ::date, 'YYYY-MM') = '2020-07'
AND PD.original_inv_no IS NOT NULL
UNION
select distinct bm.invoice_no,
'GST NON HOLD',
original_inv_no,
(select distinct bill_date
from "CBF".bill_master
where invoice_no = original_inv_no) BILL_DATE,
case
WHEN TO_NUMBER(BM.TAX_TOTAL) = 0 THEN
'Y'
ELSE
'N'
END TAXABLE_FLAG
from "CBF".bill_master BM, "CBF".ADJ_details PD
where BM.INVOICE_NO = PD.INVOICE_NO
AND BM.ID = PD.PROCESS_ID
AND TO_CHAR(BM.BILL_DATE ::date, 'YYYY-MM') = '2020-07'
and isactive = 'Y'
and BM.SERVICE_TYPE <> 'TCLi'
and bill_gen_system = 'DEFAULT'
AND MODIFIED_PROCESS IS NULL
AND TO_NUMBER(AMOUNT) < 0
AND BM.BILL_TYPE = 'Production'
AND PD.original_cust_gstn <> BM.customer_gstn
AND PD.original_pos <> BM.pos_state
AND PD.original_tcl_gstn <> BM.tcl_gstn
UNION
select distinct bm.invoice_no,
'GST NON HOLD',
original_inv_no,
(select distinct bill_date
from "CBF".bill_master
where invoice_no = original_inv_no) BILL_DATE,
case
WHEN TO_NUMBER(BM.TAX_TOTAL) = 0 THEN
'Y'
ELSE
'N'
END TAXABLE_FLAG
from "CBF".bill_master BM, "CBF".product_details PD
where BM.INVOICE_NO = PD.INVOICE_NO
AND BM.ID = PD.PROCESS_ID
AND TO_CHAR(BM.BILL_DATE ::date, 'YYYY-MM') = '2020-07'
and isactive <> 'P'
and BM.SERVICE_TYPE <> 'TCLi'
and bill_gen_system = 'DEFAULT'
and MODIFIED_PROCESS IS NULL
AND BM.BILL_TYPE = 'Production'
AND PD.original_cust_gstn <> BM.customer_gstn
AND PD.original_pos <> BM.pos_state
AND PD.original_tcl_gstn <> BM.tcl_gstn
AND NVL(TO_NUMBER(ONE_TIME_CHARGES), TO_NUMBER(RECURRING_CHARGES)) < 0;'''