0

我需要执行与此类似的操作,标签字段将具有动态生成的值。

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

添加 qty 字段,而 tag 字段没有重复值。

不:该表具有我从中生成此查询的这些字段

ID, Tag, QTY, Price_Of_Unit

如果有人能回答,我很绝望!提前致谢!巴希特

4

2 回答 2

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

您可以执行其他“聚合”函数而不是 sum:

http://msdn.microsoft.com/en-us/library/office/bb177686(v=office.12).aspx

于 2013-09-22T08:41:30.930 回答
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 通过汇总单价来完成 - 正如您所同意的那样,这是没有意义的。

于 2013-09-29T04:47:24.463 回答