我需要执行与此类似的操作,标记字段将具有动态生成的值。
Tag | Qty | Price_Of_Unit
--------------------------------------------------
Jam Bottle 90ml | 2 | $9
Jam Bottle 180ml | 1 | $15
Jam Bottle 180ml | 3 | $15
Jam Bottle 180ml | 2 | $15
Jam Bottle 90ml | 2 | $9
我想要一个返回如下内容的查询:
Tag | Qty | Price_Of_Unit
--------------------------------------------------
Jam Bottle 90ml | 4 | $9
Jam Bottle 180ml | 6 | $15
添加了数量字段,而标记字段没有重复值。
不是:该表包含我将从中生成此查询的字段
ID, Tag, QTY, Price_Of_Unit
如果有人能回答,我绝望了! 提前致谢! Bhashithe
答案 0 :(得分:1)
你是说你想要一个小组吗?
SELECT
Tag
,sum(QTY)
,sum(Price_Of_Unit)
FROM
Table
GROUP BY
Tag
这将“分组”所有具有相同标记的行,其他列是行组中的函数 - 这里我选择了sum,它将所有QTY和Price_Of_Unit列相加。
分组依据:
http://office.microsoft.com/en-gb/access-help/group-by-clause-HA001231482.aspx
你可以做其他“聚合”功能而不是总和:
http://msdn.microsoft.com/en-us/library/office/bb177686(v=office.12).aspx
答案 1 :(得分:0)
对于每个代码,您希望总结Qty
,同时还会显示个人Price_of_Unit
。你将不得不以一种迂回的方式解决这个问题:
select t.Tag, sq.TotalQty, t.Price_of_Unit
from YourTable as t
inner join (
select Tag, sum(Qty) as TotalQty
from YourTable
group by Tag
) as sq
on t.Tag = sq.Tag
这是因为当您使用分组时,SQL需要聚合未明确分组的每个列。因此,在按Tag
分组后,您需要汇总Qty
(在这种情况下,按每个代码的总数量)。如果您还要在Price_of_Unit
子句的选择查询中包含group by
,那么您还需要汇总这个,@ gordatron通过总计单价来完成 - 这是您同意的没有意义。