簡體   English   中英

SQL Group By來自其他表的字段

[英]SQL Group By on field from other table

如何在sql中對來自其他表的字段進行分組。 這是我的代碼

select 
  sum(a.trans_amount), (
    select 
      ledger_name 
    from 
      ledger_master 
    where 
      ledger_master.ledger_code = transaction_ledger.ledger_code
  ) as ledger_name,
  ledger_code 
from 
  transaction_ledger 
where 
  ledger_parent = 'Sundry Debtors' 
group by 
  ledger_code,
  ledger_name

假設每個交易分類帳只有一個分類帳主記錄,這可能就是您所追求的:

select 
  sum(t.trans_amount),
  m.ledger_name, 
  t.ledger_code 
from 
  transaction_ledger t
    inner join
  ledger_master m
    on t.ledger_code = m.ledger_code
where 
  t.ledger_parent = 'Sundry Debtors'
group by 
  t.ledger_code,
  m.ledger_name

為什么不加入結果然后分組呢?

SELECT 
SUM(Trans_Amount), 
A.Ledger_Name, 
A.Ledger_Code 
FROM Transaction_Ledger A INNER JOIN Ledger_Master B 
ON A.Ledger_Code=B.Ledger_Code 
WHERE A.Ledger_Parent='Sundry Debtors' 
GROUP BY A.Ledger_Code, A.Ledger_Name

您的Ledger_Master和Transaction_Ledger有一個相關的列“Ledger_Code”,您在已提供的示例查詢中使用了該列。

記住這一點,您可以在連接兩個表的這兩個字段后繼續按必填字段進行分組。

幸運的是,您想要的選擇列表(名稱和代碼)也可用於分組 - 因此不違反分組規則。

暫無
暫無

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

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