O código a seguir traz todas as notas lançadas na tabela AP_INVOICES_ALL e seus respectivos relacionamentos com as tabelas mencionadas na através do campo (INVOICE_ID).
FROM AP_INVOICES_ALL AIA
LEFT OUTER JOIN AP_PAYMENT_SCHEDULES_ALL APSA USING (INVOICE_ID)
LEFT OUTER JOIN AP_INVOICE_PAYMENTS_ALL AIPA USING (INVOICE_ID)
LEFT OUTER JOIN ap_invoice_distributions_all AIDA USING (INVOICE_ID)
LEFT OUTER JOIN AP_CHECKS_ALL ACA USING (CHECK_ID),
AP_PAYMENT_SCHEDULES_ALL APSA
AP_INVOICE_PAYMENTS_ALL
ap_invoice_distributions_all AIDA
AP_CHECKS_ALL ACA
AP_PAYMENT_SCHEDULES_ALL APSA -- Agerndado
AP_INVOICE_PAYMENTS_ALL AIPA -- Pagamento
ap_invoice_distributions_all AIDA -- Centro de custos / Contas e Aprovações
AP_CHECKS_ALL ACA - Dados do Pagamento
AND (AIPA.REVERSAL_FLAG='N' OR AIPA.REVERSAL_FLAG IS NULL) LEFT OUTER JOIN AP_INVOICE_PAYMENTS_ALL AIPA USING (INVOICE_ID)
AIPA.REVERSAL_FLAG='Y'
Resumidamente o campo AIPA.REVERSAL_FLAG tem 3 opções:
NULO, N ou Y, quero o Y, porem se não tiver nenhum Y não aparece a tebela devido ao LEFT OUTER JOIN:
LEFT (AP_INVOICE_ALL CAMPO INVOICE_ID)
Como faço para corrigir ?
Abaixo o código
SELECT DISTINCT
INVOICE_ID,
TO_CHAR(AIA.creation_date,'DD/MM/YYYY') AS Creation_date,
usr.user_name AS user_name,
TO_CHAR(AIA.Last_update_date,'DD/MM/YYYY') AS last_update_date,
usrup.user_name AS user_processor,
AIA.wfapproval_status AS approval_status,
DECODE (UPPER(AIDA.match_status_flag),'A','VALIDATION','N','NEEDS VALIDATION','NEVER VALIDATION') AS inv_status,
DECODE (UPPER(AIA.invoice_type_lookup_code),'STANDARD', 'padrão', 'AWT', 'RETENCAO DE IMPOSTOS',
'INTEREST', 'JUROS', 'MIXED', 'MISTO', 'PREPAYMENT', 'PAGAMENTO ANTECIPADO',
'QUICKDEFAULT', 'DEFAULT PO', 'QUICKMATCH', 'VINCULACAO RAPIDA', 'CREDIT','AVISO DE CREDITO',
'DEBIT','AVISO DE DEBITO','EXPENSE REPORT','RELATORIO DE DESPESAS') AS invoice_type,
DECODE (UPPER(AIA.payment_status_flag),'Y','PAID','N','NOT PAID','P','PARTIAL PAID') AS Status,
GSOB.SHORT_NAME AS CARRIER,
HOU.NAME AS ORG_NAME,
(PVSA.global_attribute10|| PVSA.global_attribute11|| PVSA.global_attribute12 )AS CNPJ,
PV.segment1 AS SUPPLIER_CODE,
PV.vendor_name AS SUPPLIER_NAME,
PVSA.vendor_site_code AS SITE,
AIA.invoice_num AS INVOICE_NUMBER,
TO_CHAR(AIA.invoice_date,'DD/MM/YYYY') AS INVOICE_DATE,
TO_CHAR(AIA.terms_date, 'DD/MM/YYYY') AS TERMS_DATE,
ATL.due_days AS DAYS,
TO_CHAR(AIA.terms_date + ATL.due_days,'DD/MM/YYYY') AS DUE_DATE,
AIA.invoice_currency_code AS CURRENCY,
NVL (AIA.invoice_amount, 0) AS GROSS_AMOUNT,
NVL (AIA.amount_paid, 0) AS AMOUNT_PAID,
(NVL(AIA.invoice_amount, 0) - NVL (AIA.amount_paid, 0)) AS BALANCE,
APSA.PAYMENT_PRIORITY AS PRIORITY,
APSA.payment_method_lookup_code AS PAYMENT_METHOD,
AIA.pay_group_lookup_code AS PAY_GROUP,
ABA.BATCH_NAME AS BATCH_NAME,
NVL(AIPA.AMOUNT,0) AS PAGO,
TO_CHAR(aca.check_date,'DD/MM/YYYY') AS payment_date,
AIPA.REVERSAL_FLAG,
ACA.AMOUNT AS CHECK_AMOUNT,
ACA.CHECK_NUMBER,
ACA.BANK_ACCOUNT_NAME,
ACA.BANK_ACCOUNT_NUM,
ACA.STATUS_LOOKUP_CODE
FROM AP_INVOICES_ALL AIA
LEFT OUTER JOIN AP_PAYMENT_SCHEDULES_ALL APSA USING (INVOICE_ID)
LEFT OUTER JOIN AP_INVOICE_PAYMENTS_ALL AIPA USING (INVOICE_ID)
LEFT OUTER JOIN ap_invoice_distributions_all AIDA USING (INVOICE_ID)
LEFT OUTER JOIN AP_CHECKS_ALL ACA USING (CHECK_ID),
FND_USER USR,
FND_USER USRUP,
GL_SETS_OF_BOOKS GSOB,
HR_ORGANIZATION_UNITS HOU,
PO_VENDORS PV,
PO_VENDOR_SITES_ALL PVSA,
AP_TERMS ATE,
AP_TERMS_LINES ATL,
AP_BATCHES_ALL ABA
WHERE invoice_id in (3740338,3799833,3799838,3821310,3821311,4575435,4613524)
AND AIA.created_by = USR.user_id
AND AIA.last_updated_by = USRUP.user_id
AND AIA.SET_OF_BOOKS_ID=GSOB.SET_OF_BOOKS_ID
AND AIA.ORG_ID=HOU.ORGANIZATION_ID
AND AIA.vendor_id =PV.vendor_id
AND AIA.vendor_site_id =PVSA.vendor_site_id
AND AIA.terms_id =ATE.term_id
AND ATE.term_id =ATL.term_id
AND AIA.batch_id =ABA.batch_id
AND (AIPA.REVERSAL_FLAG='N' OR AIPA.REVERSAL_FLAG IS NULL)
AND AIA.pay_group_lookup_code IN ('NATIONAL', 'BOLETO','ZERO PAY')
ORDER BY AIA.invoice_num;
http://glufke.net/oracle/viewtopic.php?p=29997#29997