Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

How to write the case statement

Posted on 2014-01-29
14
521 Views
Last Modified: 2014-01-29
I have a following procedure

APPS.CCL_VAT_TAX_code_fluctuation (
   ERRBUF    OUT VARCHAR2,
   RETCODE   OUT VARCHAR2,
   p_date_type VARCHAR2,
   p_date_from date,
   p_date_to date
   )

i have a select statement

base on the p_date_type
if it is 'INVOICE DATE' then
the filter should be

 (  ct.trx_date between nvl(p__date_from , ct.trx_date )
                       AND nvl(p_date_to , ct.trx_date )

and when the p_date_type= 'RECEIPT DATE'
the the filter should be

then (  cr.receipt_date between nvl(p__date_from , cr.receipt_date )
                       AND nvl(p_date_to , cr.receipt_date )

how to write the case statement
0
Comment
Question by:pardeshirahul
  • 7
  • 4
  • 2
  • +1
14 Comments
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
ID: 39818784
No need for a case statement.



select ...
where
((p_date_type ='INVOICE DATE' and
(  ct.trx_date between nvl(p__date_from , ct.trx_date )
                       AND nvl(p_date_to , ct.trx_date )
)
or
(p_date_type= 'RECEIPT DATE' and
(  cr.receipt_date between nvl(p__date_from , cr.receipt_date )
                       AND nvl(p_date_to , cr.receipt_date )
))
0
 
LVL 40

Expert Comment

by:Kyle Abrahams
ID: 39818802
You shouldn't use between when doing dates, and a case statement won't work in your scenario because  you're comparing different fields that don't tie to each other.


select * from apps.CLL_VAT_TAX_code_flucation
where
 ( p_date_type = 'INVOICE DATE'  and
   ct.trx_date >= nvl(p__date_from , ct.trx_date )
  AND ct.trx_date < nvl(p_date_to , ct.trx_date
 )
OR
(
 p_date_type= 'RECEIPT DATE' AND
 cr.receipt_date >= nvl(p__date_from , cr.receipt_date )
 AND cr.receipt_date < nvl(p_date_to , cr.receipt_date )
)
0
 

Author Comment

by:pardeshirahul
ID: 39818806
why it is giving missing right parenthesis
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 

Author Comment

by:pardeshirahul
ID: 39818809
sorry my mistake
0
 

Author Comment

by:pardeshirahul
ID: 39818835
it is giving me ORA-00907: missing right parenthesis
0
 

Author Comment

by:pardeshirahul
ID: 39818854
This is my query

SELECT ct.trx_number,
                       aou.name Operating_Unit,
                       ct.invoice_currency_code Functional_Currency_Code,
                       --ct.type Transaction_Class,
                       (SELECT name
                          FROM ra_cust_trx_types_all TYPE
                         WHERE TYPE.CUST_TRX_TYPE_ID = ct.CUST_TRX_TYPE_ID)
                          Transaction_Class,
                       ct.trx_number Transaction_Number,
                       cl.line_number Line_Number,
                       ct.trx_date Transaction_Date,
                       ps.gl_date GL_Date,
                       SUBSTR (HZ_COMMON_PUB.get_party_name (b.party_id),
                               1,
                               240)
                          Bill_To_Customer_Name,
                       SUBSTR (
                          HZ_COMMON_PUB.GET_CUST_ADDRESS (
                             bisu.cust_acct_site_id),
                          1,
                          240)
                          Bill_To_Customer_Address,
                       c.country Bill_To_Customer_Country,
                       NULL Bill_To_Customer_Tax_ID,
                       ter.name Payment_Terms,
                       ct.invoice_currency_code Entered_Currency,
                       nvl(ps.exchange_rate,1) Exchange_Rate,
                       NVL (cl.quantity_ordered, quantity_invoiced) Quantity,
                       NVL (cl.taxable_amount, cl.unit_selling_price)
                          Unit_Selling_Price,
                         NVL (cl.quantity_ordered, quantity_invoiced)
                       * NVL (cl.taxable_amount, cl.unit_selling_price)
                          Entered_Net_Line_Sales_Amount,
                       (SELECT NVL (tax_rate, 0)
                          FROM ra_customer_trx_lines_all cl1
                         WHERE     cl1.LINK_TO_CUST_TRX_LINE_ID =
                                      cl.customer_trx_line_id
                               AND SIGN (tax_rate) = '+1')
                          Tax_Rate,
                         NVL (cl.quantity_ordered, quantity_invoiced)
                       * NVL (cl.taxable_amount, cl.unit_selling_price)
                       * (SELECT NVL (tax_rate, 0)
                            FROM ra_customer_trx_lines_all cl1
                           WHERE     cl1.LINK_TO_CUST_TRX_LINE_ID =
                                        cl.customer_trx_line_id
                                 AND SIGN (tax_rate) = '+1')
                       / 100
                          Entered_Tax_Amount,
                           --ps.tax_original Entered_Tax_Amount,
                           -- NVL (cl.quantity_ordered, quantity_invoiced) * cl.unit_selling_price + ps.tax_original  Entered_Gross_Line_Amount,
                           NVL (cl.quantity_ordered, quantity_invoiced)
                         * cl.unit_selling_price
                       +   NVL (cl.quantity_ordered, quantity_invoiced)
                         * NVL (cl.taxable_amount, cl.unit_selling_price)
                         * (SELECT NVL (tax_rate, 0)
                              FROM ra_customer_trx_lines_all cl1
                             WHERE     cl1.LINK_TO_CUST_TRX_LINE_ID =
                                          cl.customer_trx_line_id
                                   AND SIGN (tax_rate) = '+1')
                         / 100
                          Entered_Gross_Line_Amount,
                         --ps.amount_due_original Entered_Gross_Line_Amount,
                         NVL (cl.quantity_ordered, quantity_invoiced)
                       * NVL (NVL (cl.taxable_amount, cl.unit_selling_price),
                              0)
                       *nvl( ps.exchange_rate,1)
                          Functional_Net_Line_Amount,
                         --NVL (ps.tax_original, 0) * NVL (ps.exchange_rate, 1) Funcational_Tax_Amount,
                         NVL (cl.quantity_ordered, quantity_invoiced)
                       * NVL (cl.taxable_amount, cl.unit_selling_price)
                       * (SELECT NVL (tax_rate, 0)
                            FROM ra_customer_trx_lines_all cl1
                           WHERE     cl1.LINK_TO_CUST_TRX_LINE_ID =
                                        cl.customer_trx_line_id
                                 AND SIGN (tax_rate) = '+1')
                       / 100
                       * NVL (ps.exchange_rate, 1)
                          Funcational_Tax_Amount,
                           -- NVL (cl.quantity_ordered, quantity_invoiced)  * NVL (cl.unit_selling_price, 0)  * ps.exchange_rate  + NVL (ps.tax_original, 0) * NVL (ps.exchange_rate, 1)
                           --Functional_Gross_Line_Amount,
                           NVL (cl.quantity_ordered, quantity_invoiced)
                         * NVL (NVL (cl.taxable_amount, cl.unit_selling_price),
                                0)
                         * nvl(ps.exchange_rate,1)
                       +   NVL (cl.quantity_ordered, quantity_invoiced)
                         * NVL (cl.taxable_amount, cl.unit_selling_price)
                         * (SELECT NVL (tax_rate, 0)
                              FROM ra_customer_trx_lines_all cl1
                             WHERE cl1.LINK_TO_CUST_TRX_LINE_ID =
                                      cl.customer_trx_line_id)
                         / 100
                         * NVL (ps.exchange_rate, 1)
                          Functional_Gross_Line_Amount,
                       (SELECT ra3.apply_date
                          FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                         WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                      PS.PAYMENT_SCHEDULE_ID
                               AND RA3.applied_customer_trx_id =
                                      cl.customer_trx_id --AND RA3.APPLIED_CUSTOMER_TRX_LINE_ID=cl.customer_trx_line_id
                               AND ROWNUM = 1)
                          Collected_Date,
                       -- ra3.apply_date Collected_Date,
                       (SELECT ACR.RECEIPT_NUMBER
                          FROM AR_RECEIVABLE_APPLICATIONS_ALL ARA,
                               AR_CASH_RECEIPTS_ALL ACR,
                               RA_CUSTOMER_TRX_ALL RCT1
                         WHERE     ARA.STATUS = 'APP'
                               AND ARA.CASH_RECEIPT_ID = ACR.CASH_RECEIPT_ID
                               AND ARA.APPLIED_CUSTOMER_TRX_ID =
                                      RCT1.CUSTOMER_TRX_ID
                               AND ARA.cash_receipt_id =
                                      (SELECT RA3.cash_receipt_id
                                         FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                        WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                     PS.PAYMENT_SCHEDULE_ID
                                              AND RA3.applied_customer_trx_id =
                                                     cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                              AND ROWNUM = 1)
                               AND RCT1.CUSTOMER_TRX_ID = ct.CUSTOMER_TRX_ID)
                          Collected_Bank_Tfr_Num,
                           (SELECT ACR.RECEIPT_DATE
                          FROM AR_RECEIVABLE_APPLICATIONS_ALL ARA,
                               AR_CASH_RECEIPTS_ALL ACR,
                               RA_CUSTOMER_TRX_ALL RCT1
                         WHERE     ARA.STATUS = 'APP'
                               AND ARA.CASH_RECEIPT_ID = ACR.CASH_RECEIPT_ID
                               AND ARA.APPLIED_CUSTOMER_TRX_ID =
                                      RCT1.CUSTOMER_TRX_ID
                               AND ARA.cash_receipt_id =
                                      (SELECT RA3.cash_receipt_id
                                         FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                        WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                     PS.PAYMENT_SCHEDULE_ID
                                              AND RA3.applied_customer_trx_id =
                                                     cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                              AND ROWNUM = 1)
                               AND RCT1.CUSTOMER_TRX_ID = ct.CUSTOMER_TRX_ID)
                          Collected_Bank_Receipt_date,
                         NVL (cl.quantity_ordered, quantity_invoiced)
                       * cl.unit_selling_price
                          Collected_Before_VAT_Orig_Curr,
                         --ps.tax_original VAT_Withholding_OC,
                         NVL (cl.quantity_ordered, quantity_invoiced)
                       * cl.unit_selling_price
                       * (SELECT NVL (tax_rate, 0)
                            FROM ra_customer_trx_lines_all cl1
                           WHERE     cl1.LINK_TO_CUST_TRX_LINE_ID =
                                        cl.customer_trx_line_id
                                 AND SIGN (tax_rate) = '+1')
                       / 100
                          VAT_Withholding_OC,
                       --   ra3.tax_applied Collected_VAT_OC,
                       (SELECT RA3.tax_applied
                          FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                         WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                      PS.PAYMENT_SCHEDULE_ID
                               AND RA3.applied_customer_trx_id =
                                      cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                               AND ROWNUM = 1)
                          Collected_VAT_OC,
                         ps.tax_original
                       - (SELECT RA3.tax_applied
                            FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                           WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                        PS.PAYMENT_SCHEDULE_ID
                                 AND RA3.applied_customer_trx_id =
                                        cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                 AND ROWNUM = 1)
                          Other_WHT_OC,
                         --ra3.line_applied + ra3.tax_applied Total_OC,
                         (SELECT RA3.line_applied
                            FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                           WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                        PS.PAYMENT_SCHEDULE_ID
                                 AND RA3.applied_customer_trx_id =
                                        cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                 AND ROWNUM = 1)
                       + (SELECT RA3.tax_applied
                            FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                           WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                        PS.PAYMENT_SCHEDULE_ID
                                 AND RA3.applied_customer_trx_id =
                                        cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                 AND ROWNUM = 1)
                          Total_OC,
                       (SELECT nvl(exchange_rate,1)
                          FROM ar_cash_receipts_all acra
                         WHERE     1 = 1
                               AND acra.cash_receipt_id =
                                      (SELECT RA3.cash_receipt_id
                                         FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                        WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                     PS.PAYMENT_SCHEDULE_ID
                                              AND RA3.applied_customer_trx_id =
                                                     cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                              AND ROWNUM = 1))
                          Exchange_Rate_at_the_receipt,
                       (SELECT currency_code
                          FROM ar_cash_receipts_all acra
                         WHERE     1 = 1
                               AND acra.cash_receipt_id =
                                      (SELECT RA3.cash_receipt_id
                                         FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                        WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                     PS.PAYMENT_SCHEDULE_ID
                                              AND RA3.applied_customer_trx_id =
                                                     cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                              AND ROWNUM = 1))
                          currency_code_at_the_receipt,
                         (SELECT RA3.line_applied
                            FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                           WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                        PS.PAYMENT_SCHEDULE_ID
                                 AND RA3.applied_customer_trx_id =
                                        cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                 AND ROWNUM = 1)
                                 * nvl(ps.exchange_rate,1)/*( SELECT RA3.TRANS_TO_RECEIPT_RATE
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1)*/
                       /** (SELECT nvl(exchange_rate,1)
                            FROM ar_cash_receipts_all acra
                           WHERE     1 = 1
                                 AND acra.cash_receipt_id =
                                        (SELECT RA3.cash_receipt_id
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1))*/
                          Collected_bef_VAT_Funct_Curr,
                       NVL (ps.tax_original, 0) * NVL (ps.exchange_rate, 1)
                          VAT_With_holding_FC,
                         (SELECT RA3.tax_applied
                            FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                           WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                        PS.PAYMENT_SCHEDULE_ID
                                 AND RA3.applied_customer_trx_id =
                                        cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                 AND ROWNUM = 1)
                                 * ( SELECT RA3.TRANS_TO_RECEIPT_RATE
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1)
                                                       /* * (SELECT nvl(exchange_rate,1)
                            FROM ar_cash_receipts_all acra
                           WHERE     1 = 1
                                 AND acra.cash_receipt_id =
                                        (SELECT RA3.cash_receipt_id
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1))*/
                          Collected_VAT_FC,
                       NULL Other_WHT_FC,
                           (SELECT RA3.line_applied
                              FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                             WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                          PS.PAYMENT_SCHEDULE_ID
                                   AND RA3.applied_customer_trx_id =
                                          cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                   AND ROWNUM = 1)
                                   *( SELECT RA3.TRANS_TO_RECEIPT_RATE
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1)
                        /* * (SELECT nvl(exchange_rate,1)
                              FROM ar_cash_receipts_all acra
                             WHERE     1 = 1
                                   AND acra.cash_receipt_id =
                                          (SELECT RA3.cash_receipt_id
                                             FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                            WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                         PS.PAYMENT_SCHEDULE_ID
                                                  AND RA3.applied_customer_trx_id =
                                                         cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                  AND ROWNUM = 1))*/
                       +   (SELECT RA3.tax_applied
                              FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                             WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                          PS.PAYMENT_SCHEDULE_ID
                                   AND RA3.applied_customer_trx_id =
                                          cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                            )
                                                            * ( SELECT RA3.TRANS_TO_RECEIPT_RATE
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1)
                      /*   * (SELECT nvl(exchange_rate,1)
                              FROM ar_cash_receipts_all acra
                             WHERE     1 = 1
                                   AND acra.cash_receipt_id =
                                          (SELECT RA3.cash_receipt_id
                                             FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                            WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                         PS.PAYMENT_SCHEDULE_ID
                                                  AND RA3.applied_customer_trx_id =
                                                         cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                  AND ROWNUM = 1))*/
                          Total_FC,
                           (SELECT RA3.tax_applied
                              FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                             WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                          PS.PAYMENT_SCHEDULE_ID
                                   AND RA3.applied_customer_trx_id =
                                          cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                   AND ROWNUM = 1)
                                   * ( SELECT RA3.TRANS_TO_RECEIPT_RATE
                                           FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                          WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                       PS.PAYMENT_SCHEDULE_ID
                                                AND RA3.applied_customer_trx_id =
                                                       cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                AND ROWNUM = 1)
                         /** (SELECT nvl(exchange_rate,1)
                              FROM ar_cash_receipts_all acra
                             WHERE     1 = 1
                                   AND acra.cash_receipt_id =
                                          (SELECT RA3.cash_receipt_id
                                             FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                            WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                         PS.PAYMENT_SCHEDULE_ID
                                                  AND RA3.applied_customer_trx_id =
                                                         cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                                  AND ROWNUM = 1))*/
                       - NVL (ps.tax_original, 0) * NVL (ps.exchange_rate, 1)
                          VAT_Fluctuation,
                       NULL Collected_VAT_PER,
                          cl.attribute1
                       || '-'
                       || cl.attribute2
                       || '-'
                       || cl.attribute3
                       || '-'
                       || cl.attribute4
                       || '-'
                       || cl.attribute5
                          Desc_of_service,
                       NULL Total_Penalty,
                       c.country Cust_country_of_residence,
                       hca.account_number Related_party,
                          abaa.bank_account_num
                       || '-'
                       || abb.bank_name
                       || '-'
                       || abb.bank_branch_name
                          Bank
                  FROM ar_payment_schedules_all ps,
                       --AR_RECEIVABLE_APPLICATIONS_ALL RA3,
                       ra_customer_trx_all ct,
                       ar_cash_receipts_all cr,
                       ra_terms ter,
                       hr_all_organization_units aou,
                       hz_cust_site_uses_all bisu,
                       ra_customer_trx_lines_all cl,
                       hz_cust_accounts hca,
                       hz_parties hp,
                       ap_bank_accounts_all abaa,
                       ap_bank_branches abb,
                       hz_party_sites b,
                       hz_locations c,
                       hz_cust_acct_sites_all a
                 WHERE   1=1
AND ( 'INVOICE DATE' = 'INVOICE DATE'  and
    ct.trx_date >= nvl('01-JAN-2013' , ct.trx_date )
  AND ct.trx_date < nvl('30-JAN-2013' , ct.trx_date
 )
OR
(
 'INVOICE DATE' = 'RECEIPT DATE' AND
 cr.receipt_date >= nvl('01-JAN-2013' , cr.receipt_date )
 AND cr.receipt_date < nvl('30-JAN-2013' , cr.receipt_date )
)                       AND a.party_site_id = b.party_site_id
                       AND b.location_id = c.location_id
                       AND bisu.cust_acct_site_id = a.cust_acct_site_id
                       AND hca.party_id = hp.party_id(+)
                       AND ct.customer_trx_id = cl.customer_trx_id
                       AND cr.pay_from_customer = hca.cust_account_id(+)
                       --AND RA3.APPLIED_PAYMENT_SCHEDULE_ID = PS.PAYMENT_SCHEDULE_ID
                       --AND cl.customer_trx_id(+) = RA3.applied_customer_trx_id
                       --AND cl.customer_trx_line_id(+)=RA3.applied_customer_trx_line_id
                       AND ps.customer_trx_id = ct.customer_trx_id(+)
                       AND ps.cash_receipt_id = cr.cash_receipt_id(+)
                       AND ps.term_id = ter.term_id(+)
                       AND ps.org_id = aou.organization_id(+)
                       AND ct.bill_to_site_use_id = bisu.site_use_id(+)
                       --and  PS.CLASS <> 'PMT'
                       --AND NVL (PS.STATUS, 'Z') = 'OP'
                       AND cr.remittance_bank_account_id =
                              abaa.bank_account_id(+)
                       AND abaa.bank_branch_id = abb.bank_branch_id(+)
                       --AND ct.trx_number IN ('10061', '10062')
                         AND ct.trx_number IN ('43', '106'         ,              '10084',
                                             '10085',
                                             '10086',
                                             '10087',
                                             '10089',
                                             '10102'
                                             )--('10061', '10062')
                        and ct.invoice_currency_code <> 'MXN'
                        and (SELECT currency_code
                          FROM ar_cash_receipts_all acra
                         WHERE     1 = 1
                               AND acra.cash_receipt_id =
                                      (SELECT RA3.cash_receipt_id
                                         FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                        WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                     PS.PAYMENT_SCHEDULE_ID
                                              AND RA3.applied_customer_trx_id =
                                                     cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                              AND ROWNUM = 1))  ='MXN'
                       AND ct.invoice_currency_code <>  (SELECT currency_code
                          FROM ar_cash_receipts_all acra
                         WHERE     1 = 1
                               AND acra.cash_receipt_id =
                                      (SELECT RA3.cash_receipt_id
                                         FROM AR_RECEIVABLE_APPLICATIONS_ALL RA3
                                        WHERE     RA3.APPLIED_PAYMENT_SCHEDULE_ID =
                                                     PS.PAYMENT_SCHEDULE_ID
                                              AND RA3.applied_customer_trx_id =
                                                     cl.customer_trx_id --AND RA3.applied_customer_trx_line_id=cl.customer_trx_line_id
                                              AND ROWNUM = 1))
                              AND (SELECT name
                              FROM ra_cust_trx_types_all TYPE
                             WHERE TYPE.CUST_TRX_TYPE_ID = ct.CUST_TRX_TYPE_ID) <>
                              'PWMX16 SCRAP SALES'
                       AND cl.line_TYPE = 'LINE'
                       AND organization_id = 782
0
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
ID: 39818856
The concept is there.  You just need to match up the parenthesis for the logic you want.

Since we don't have the entire select nor the full requirements, we cannot provide 100% copy/paste code.
0
 
LVL 76

Expert Comment

by:slightwv (䄆 Netminder)
ID: 39818868
I was typing when you posted the select.


You will want to WRAP the entire piece in parans to make it a stand-alone check.  Otherwise the OR might break the logic.

Try what I posted.
0
 
LVL 76

Accepted Solution

by:
slightwv (䄆 Netminder) earned 500 total points
ID: 39818884
The missing right paran is here:

AND ct.trx_date < nvl('30-JAN-2013' , ct.trx_date
 )


To make it valid syntax:
AND ct.trx_date < nvl('30-JAN-2013' , ct.trx_date )
 )

Still don't think it is correct logic with the OR by itself.

Maybe this:
AND 
(( 'INVOICE DATE' = 'INVOICE DATE'  and
    ct.trx_date >= nvl('01-JAN-2013' , ct.trx_date )
  AND ct.trx_date < nvl('30-JAN-2013' , ct.trx_date) 
 )
OR
(
 'INVOICE DATE' = 'RECEIPT DATE' AND
 cr.receipt_date >= nvl('01-JAN-2013' , cr.receipt_date )
 AND cr.receipt_date < nvl('30-JAN-2013' , cr.receipt_date ) 
)
)                       AND a.party_site_id = b.party_site_id

Open in new window

0
 

Author Comment

by:pardeshirahul
ID: 39818887
isint it can be done with case or decode
0
 

Author Comment

by:pardeshirahul
ID: 39818890
yes this works
0
 
LVL 74

Expert Comment

by:sdstuber
ID: 39819012
I know this question is closed but note the change from BETWEEN to   >=  and <  introduced a functional change that is probably NOT correct

look at the condtion if the p_date_to is NULL

  AND ct.trx_date < nvl(p_date_to , ct.trx_date)


ct.trx_date can't be less than itself
but it can be less than or equal to itself (i.e. BETWEEN)


also, if your dates are already truncated then the switch to < on the upper limit effectively cuts off an entire days' worth of results.

If your dates are not truncated then it cuts off one second of results (midnight of the target day)
0
 

Author Comment

by:pardeshirahul
ID: 39819055
so the condition should be

 AND ct.trx_date < = nvl(p_date_to , ct.trx_date)
0
 
LVL 74

Expert Comment

by:sdstuber
ID: 39819071
yes, or use the original BETWEEN syntax.

I prefer to not use BETWEEN, but that's just a cosmetic preference.

It's the same as  >=  and <=
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Bash Script to Analyze Oracle Schemas 11 117
Deleting Rows from an Oracle Database - Performance 19 53
Oracle DB monitor SW 21 60
Create file system directory from Oracle 10g 4 24
Article by: Swadhin
From the Oracle SQL Reference (http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/queries006.htm) we are told that a join is a query that combines rows from two or more tables, views, or materialized views. This article provides a glimps…
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video shows information on the Oracle Data Dictionary, starting with the Oracle documentation, explaining the different types of Data Dictionary views available by group and permissions as well as giving examples on how to retrieve data from th…
This video shows how to Export data from an Oracle database using the Datapump Export Utility.  The corresponding Datapump Import utility is also discussed and demonstrated.

790 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question