0

如何在 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
4

2 回答 2

1

假设每个交易分类账只有一个分类账主记录,这可能是您所追求的:

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
于 2012-11-11T16:31:24.990 回答
1

为什么不加入结果然后分组?

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”,您在提供的示例查询中使用了该列。

记住这一点,您可以在连接两个表的这两个字段后继续按必填字段进行分组。

幸运的是,您想要的选择列表(名称和代码)也可以用于分组 - 因此不会违反分组规则。

于 2012-11-11T16:33:06.420 回答