【发布时间】:2020-12-05 09:08:45
【问题描述】:
我有这样的桌子
- 累计、金额、x、姓名、时间
- 1, 100, dep, bbb, 10
- 1, 200, dep, bbb, 10
- 1, 80, 机智, bbb, 10
- 1, 90, 机智, bbb, 10
- 2, 100, dep, bbb, 20
- 2, 101, 机智, bbb, 20
- 1, 100, dep, ccc, 10
- 1、150、机智、ccc、10
从这里我想显示一个表格
- 姓名、累积、时间、dep_amt、wid_amt、利润
- bbb, 1, 10, 300, 170, 130
- bbb, 2, 20, 100, 101, -1
- ccc, 1, 10, 100, 150, -50
所以,我尝试了自我加入
SELECT a.Name, a.Acc, a.Time, a.Amount as dep_amt, new.Amount as wid_amt, (a.Amount-new.Amount) as profit
FROM all_data as a, all_data as new
where a.Time = new.Time
and a.name = new.name
and a.acc =new.acc
and a.x= "dep”
and new.x="wit"
但是,我不能对它使用 Group by(error contains nonaggregated column),并且这个 sql 会导致一个包含很多行的表。怎么办???
【问题讨论】:
-
如果您按某些内容进行分组,则必须汇总结果。你还没有展示你想如何将它分组,所以不可能给出建议。但想法是这样的:例如,如果您按名称分组,那么应该为该名称指定什么时间?还是金额?
标签: sql