使用 access sql 按总计作为其他列值分组

Group by totals as other column values using access sql

我有一个table一个

 EK_ID  ECID    WCD    WCP
1004    1001    2        0
1004    1001    2        5
1004    1001    3        2
1005    1025    2        5
1005    1025    4        3
1006    1025    6        2
1006    1025    5        8

我正在尝试将 WC_D、WC_P 列的总和(按 EK_ID 分组)结果写为其他列值(根据 EK_ID 重复总计).结果 table 应该类似于 。我有一种情况需要将 WCD 值除以其总数。

EK_ID   ECID  WCD  WCP  Total_WCD  Total_WCP
1004    1001    2   0          7      7
1004    1001    2   5          7      7
1004    1001    3   2          7      7
1005    1025    2   5          6      8
1005    1025    4   3          6      8
1006    1025    6   2          11     10
1006    1025    5   8          11     10
select YT.*,T.*
from #YourTable YT
join (
    select EK_ID, SUM(WCD) as Total_WCD, SUM(WCP) as Total_WCP
    from #YourTable YT
    group by EK_ID
) T on T.EK_ID = YT.EK_ID

完整示例

    create table #YourTable(EK_ID int, ECID int, WCD int,  WCP int)
insert into #YourTable
select 1004, 1001, 2, 0
union select 1004, 1001, 2, 5
union select 1004, 1001, 3, 2
union select 1005, 1025, 2, 5
union select 1005, 1025, 4, 3
union select 1006, 1025, 6, 2
union select 1006, 1025, 5, 8



select YT.*,T.*
from #YourTable YT
join (
    select EK_ID, SUM(WCD) as Total_WCD, SUM(WCP) as Total_WCP
    from #YourTable YT
    group by EK_ID
) T on T.EK_ID = YT.EK_ID

创建此查询:

SELECT EK_ID, Sum(WCD) AS Total_WCD, Sum(WCP) AS Total_WCP FROM table GROUP BY EK_ID

那么您要求的格式中的table是:

SELECT table.EK_ID, table.ECID, table.WCD, table.WCP, query.Total_WCD, query.Total_WCP
FROM table INNER JOIN query ON table.EK_ID=query.EK_ID