首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >添加循环以返回在SELECT查询中分组在一起的各个行

添加循环以返回在SELECT查询中分组在一起的各个行
EN

Stack Overflow用户
提问于 2013-02-22 07:24:46
回答 3查看 129关注 0票数 0

我使用以下查询返回分组在一起的行:

SELECT Work, COUNT(*) AS count, Amount, SUM(Amount) AS Total FROM work_times GROUP BY Work, Amount

我想调整这一点,这样我就可以在分组的数据下面列出每个分组的单独日期。

ID |工时|金额|日期

1|治疗时段|02 40| 2013-02-02

2|咨询会|01 50| 2013-02-01

3|治疗时段|03 20| 2013-02-03

4|咨询会|08 50| 2013-02-08

5|咨询会|02 50| 2013-02-15

6|治疗时段|02 40| 2013-02-09

7|咨询会|02 50| 2013-02-22

8|治疗时段|16 40| 2013-02-16

9|治疗时段|10 20| 2013-02-10

10 |咨询会|01 50| 2013-03-01

查询将能够返回:

5个咨询会话,每个50 50:250 50

2013年2月1日

2013年2月8日

2013年2月15日

2013年2月22日

3次治疗,每次40 40:120 40

2013年2月9日

2013年2月16日

2次治疗,每次20 40:40 40

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-22 08:06:23

下面的代码是我对JW的答案的细微修改:

代码语言:javascript
运行
复制
SELECT  b.*, c.date2
FROM    (
            SELECT a.work, a.amount, 
                   COUNT(*) totalCount, 
                   SUM(Amount) totalAmount
            FROM tableName a
            GROUP BY a.work, a.amount
        ) b
        INNER JOIN
        (
            SELECT a.work, a.amount, DATE_FORMAT(Date,'%D %M %Y') date2,
                    date
            FROM tableName a
        ) c ON b.work = c.work and b.amount=c.amount
ORDER BY b.work, b.totalCount, c.date

我在第一个子查询、第二个子查询和连接表达式中添加了amount

希望这个链接能起作用:http://sqlfiddle.com/#!2/e0ec1/24

票数 1
EN

Stack Overflow用户

发布于 2013-02-22 07:29:35

代码语言:javascript
运行
复制
SELECT  b.*, c.date2
FROM    (
            SELECT  a.work, 
                    COUNT(*) totalCount, 
                    SUM(Amount) totalAmount
            FROM    tableName a
            GROUP   BY a.work, amount
        ) b
        INNER JOIN
        (
            SELECT  a.work, DATE_FORMAT(Date,'%D %M %Y') date2,
                    date
            FROM    tableName a
        ) c ON b.work = c.work
ORDER   BY b.work, b.totalCount, c.date

  • SQLFiddle Demo
票数 1
EN

Stack Overflow用户

发布于 2013-02-22 08:37:55

2查询和UNION运算符应该提供所需的格式。SQL Fiddle

代码语言:javascript
运行
复制
SELECT '' AS ID, Work, '' AS Date, Amount, SUM(Amount) AS Total
FROM TableName 
GROUP BY Work, Amount
UNION ALL
SELECT ID, Work, Date, Amount, '' AS Total
FROM TableName
ORDER BY Work, Amount, Date;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15014189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档