簡體   English   中英

查詢為單個計數返回多行

[英]Query returns multiple rows for a single count

我創建了一個查詢來返回每天的銀行對賬單行數。

由於某種原因,當有一個對帳單進來時,有兩行相同的銀行賬戶名稱。 一行返回 0 用於總語句行,另一行返回正確的語句行號。

如果當天沒有輸入語句行,則查詢僅返回一行,其中總語句行數為 0,這是正確的。

請幫忙。

    select  distinct cb.bank_name,
    cba.bank_account_name   Bank_Account_Name,
    cba.bank_account_num    Bank_Account_Number,
    le.name                 Legal_entity_Name,
    (select count(csl1.STATEMENT_LINE_ID)
    from ce_statement_lines csl1
    where to_char(csl1.booking_date,'yyyy/MM/dd') = to_char(:P_Date,'yyyy/MM/dd')
    and csl1.STATEMENT_HEADER_ID = CESL.STATEMENT_HEADER_ID
    --GROUP BY cba.bank_account_id, csl1.STATEMENT_LINE_ID
    ) total_statement_line_for_date 
    from
    ce_bank_accounts cba,
    xle_entity_profiles le,
    CE_STATEMENT_HEADERS CESH,
    ce_banks_v cb,
    ce_statement_lines CESL
    WHERE cba.account_owner_org_id  = le.legal_entity_id
    and cb.bank_party_id            = cba.bank_id
    and cba.bank_account_id = CESH.BANK_ACCOUNT_ID
    and CESL.STATEMENT_HEADER_ID = CESH.STATEMENT_HEADER_ID
   -- GROUP BY cb.bank_name, cba.bank_account_name, cba.bank_account_num, le.name, cba.bank_account_id
    order by cba.bank_account_name

|----------------|------------------|------------------ |-------|------|
|    Bank Name   |Bank Account Name |Bank Account Number|LE Name| Count|
|----------------|------------------|-------------------|-------|------|
|     A Name     |  A Account Name  |  A Account Number | A LE  |   0  |
|----------------|------------------|-------------------|-------|------|
|     B Name     |  B Account Name  |  B Account Number | B LE  |   0  |
|----------------|------------------|-------------------|-------|------|
|     B Name     |  B Account Name  |  B Account Number | B LE  |  17  |
|----------------|------------------|-------------------|-------|------|
|     C Name     |  C Account Name  |  C Account Number | C LE  |   0  |
|----------------|------------------|-------------------|-------|------|
|     C Name     |  C Account Name  |  C Account Number | C LE  |   1  |
|----------------|------------------|-------------------|-------|------|

我更喜歡示例數據,但是 - 如果您對當前查詢感到滿意並且它可以按照您的意願執行,但如果存在count數值不是0的行,也希望擺脫count = 0行,那么一個簡單的選擇是

SQL> with test (account_num, le_name, cnt) as
  2  -- this represents result of your current query
  3    (select 'A', 'A LE',  0 from dual union all
  4     select 'B', 'B LE',  0 from dual union all
  5     select 'B', 'B LE', 17 from dual union all
  6     select 'C', 'C LE',  0 from dual union all
  7     select 'C', 'C LE',  1 from dual
  8    )
  9  -- query you might need
 10  select account_num,
 11         le_name,
 12         sum(cnt) cnt
 13  from test
 14  group by account_num,
 15           le_name
 16  order by account_num;

A LE_NAME          CNT
- --------- ----------
A A LE               0
B B LE              17
C C LE               1

SQL>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM