如何在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
答案 0 :(得分: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
答案 1 :(得分: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”已在您提供的示例查询中使用。
记住这一点,您可以在连接这两个表的两个字段后继续按必填字段进行分组。
幸运的是,您想要的选择列表(名称和代码)也可用于分组 - 因此不违反分组规则。