我正在尝试从数据库中选择一些信息。 我得到的数据库列如下:
标识,名称,长度,宽度,数量,计划的
表数据如下
+-----------+-----------+---------+---------+------------+---------+
| Ident | Name | Length | Width | Quantity | Planned |
+-----------+-----------+---------+---------+------------+---------+
| 12345 | Name1 | 1500 | 1000 | 20 | 5 |
| 23456 | Name1 | 1500 | 1000 | 30 | 13 |
| 34567 | Name1 | 2500 | 1000 | 10 | 2 |
| 45678 | Name1 | 2500 | 1000 | 10 | 4 |
| 56789 | Name1 | 1500 | 1200 | 20 | 3 |
+-----------+-----------+---------+---------+------------+---------+
我想要的结果是将“名称,长度和宽度”相等的行分组,将“数量”求和,然后减去“计划的”总和。 例如:
- Name1,1500,1000,32 --- (32 because (20+30)-(5+13))
- Name1,2500,1000,14 --- (14 because (10+10)-(2+4)))
- Name1,1500,1200,17
现在我遇到了如何将这些信息分组或合并以获取所需选择的问题。可能会对您有所帮助。.如果需要进一步的信息,请在评论中注明。
答案 0 :(得分:3)
您可以通过对表格进行分组并减去Quantity
和Planned
的总和来实现。
select
Name
,Length
,Width
,sum(Quantity) - sum(Planned)
from yourTable
group by Name,Length,Width
答案 1 :(得分:0)
select
A1.Name,A1.Length,A1.Width,((A1.Quantity + A2.Quantity) -(A1.Planned+A2.Planned))
from `Table` AS A1, `Table` AS A2
where A1.Name = A2.Name and A1.Length = A2.Length and A1.Width = A2.Width
group by (whatever)
那么您要比较同一表格中的这些列吗?