【问题标题】:Add similar Dynamic rows in SQL Query Access 2007在 SQL Query Access 2007 中添加类似的动态行
【发布时间】:2013-09-22 08:24:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: sql ms-access add distinct-values


    【解决方案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

    【讨论】:

    • 谢谢,工作正常!!
    【解决方案2】:

    对于每个标签,您希望总结 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(在本例中为每个标签的总数)。如果您还要在带有group by 子句的选择查询中包含Price_of_Unit,您还需要聚合它,@gordatron 通过汇总单价来完成 - 正如您所同意的那样感觉。

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-04
      • 1970-01-01
      相关资源
      最近更新 更多