mysql - SQL Group By 对其他表中的字段进行分组

标签 mysql sql

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

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

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

关于mysql - SQL Group By 对其他表中的字段进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333052/

相关文章:

sql - 如何在 DELETE 查询中将 postgres 函数结果用作单独的列

sql - 使用 PostgreSQL 中的查询结果更新列

mysql - SQL 查询获取一个字段对于另一个特定字段重复的次数

php - 每周编制年度工作规模,无需连续工作两周

mysql - 操作数应包含 1 列

MySQL,如何获取行之间的时间差

asp.net - 使用 asp.net 连接到 mySQL 数据库

java - 通过 native SQL删除的子实体仍然存在于entityManager中

c# - 通过 C# 进行 Windows 桌面搜索

sql - 根据条件从sql中的多行中选择一行