【问题标题】:Generate report using SUM使用 SUM 生成报告
【发布时间】:2010-09-24 05:01:09
【问题描述】:

我有两个 SQL Server 2005 表:MainTable 和 Orders。

主表:

| MainID | Serial |
-------------------
| 1      | A00001 |
| 2      | B00002 |

订单:

| OrderID | MainID | Name | Value |
-----------------------------------
| 1       | 2      | John | 100   |
| 2       | 2      | Mike | 200   |
| 3       | 1      | John | 150   |
| 4       | 1      | Mike | 350   |
| 5       | 1      | John | 200   |
| 6       | 2      | John | 500   |
| 7       | 1      | Mike | 50    |

我想得到这样的东西:

|Serial  | Name | Total |
-----------------------
| A00001 | John | 350   |
| A00002 | John | 600   |
| A00001 | Mike | 400   |
| A00002 | Mike | 200   |

【问题讨论】:

    标签: sql-server-2005 sum


    【解决方案1】:
    SELECT 
        m.serial,
        o.name,
        SUM(o.value)
    FROM 
        main m
        INNER JOIN order o ON m.mainid = o.mainid
    GROUP BY
        o.name, 
        m.serial
    

    【讨论】:

      【解决方案2】:
      select serial, name, sum(value) as total
      from maintable m inner join orders o on
      m.mainID = o.mainID
      group by
      serial, name
      

      【讨论】:

        【解决方案3】:
        SELECT 
        M.SERIAL, O.NAME, SUM(VALUE) AS TOTAL
        FROM MAINTABLE M JOIN ORDERS O ON O.MAINID=M.MAINID
        GROUP BY M.SERIAL, O.NAME
        

        【讨论】:

          【解决方案4】:

          选择序列号、名称、总数

          来自 MainTable m,

          (select MainID ,name, SUM(value) Total from Orders o group by MainID , Name ) O

          其中 m.MainID= O.MainID

          【讨论】:

            猜你喜欢
            • 2017-12-21
            • 1970-01-01
            • 1970-01-01
            • 2011-03-02
            • 1970-01-01
            • 1970-01-01
            • 2014-05-15
            • 1970-01-01
            • 2023-03-21
            相关资源
            最近更新 更多