我有一个有15列客户信息的表,我想将他们购买的金额加入到表中.我当前正在try 以下加入:

SELECT  A.*, SUM(B.SALES_AMT) AS SALES
FROM CUST_INFO A
LEFT JOIN SALES_TABLE B
ON A.Cust_ID = B.Cust_ID
GROUP BY fooa, foob, fooc, etc

有没有一种方法可以根据我说的GROUP BY A.*来进行分组,而不是必须写出所有大约15列?

推荐答案

你可以把总和移到apply:

select  A.*, Isnull(B.SALES, 0) SALES
from CUST_INFO A
outer apply (
  select Sum(B.SALES_AMT) SALES
  from SALES_TABLE B
  where B.Cust_ID = A.Cust_ID
)B;

Sql相关问答推荐

R中对Arrow duckdb工作流的SQL查询

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

连接三个表的正确方式是什么?在这三个表中,可以显示在一个表上的行将在其他表中显示结果

如果多行科目有一行在指定的日期范围内,如何 Select 该科目在该日期之前的所有行?

SQL:查询作为子查询或CTE写入的最大和数失败

使用SQL数据库中的现有列派生或修改几个列

Postgresql - WHERE 中的 MAX 标准 - 初学者问题

将二维数组的第一个和第二个元素取消嵌套到两个一维数组中

我需要在 ASP.NET C# 中获取 2 个 SQL 查询结果的平均值

连续天跟踪购买情况(将标记返回到另一列?)

Postgres,使用 select 插入多个值

递归 CTE 附加为行

我们可以使用连接改进包含多个子查询的查询吗

SQL ORACLE - 查找连续天数

获取所有用户的第一次和最后一次发货以及到达日期

连续期间的缺口

如何筛选 GROUP BY 结果? HAVING 没有产生预期的结果

Postgres 条件求和函数

ACCESS SQL - 有没有办法使用通配符仅 Select 字段的特定部分?

使用 SQL 表中的连接列删除重复记录