微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – 将页脚行放置为一组行的标题行

我有一个如下表:

 rfa_yea | rfa_idx |                      rfa_dsp                       | rfa_tpr
---------+---------+----------------------------------------------------+---------
 2013    |       1 | PIGATO VERM.NO/ROSS/ORMEASCO CL75                  | A
 2013    |       2 | ESTATE\134134134047 BICCHIERE SING.VERDE           | A
 2013    |       3 | Rif. Trn. N. 17 del 17/04/2013 Cassa N. 00001      | C
 2013    |       4 | BIB.RED BULL LAT.CL25 ENER.DRI                     | A
 2013    |       5 | BIB.RED BULL LAT.CL25 ENER.DRI                     | A
 2013    |       6 | SHOPPER 30X60 MAXI X 1000                          | A
 2013    |       7 | SHOPPER HD 27X50 MEDIE X 1000                      | A
 2013    |       8 | PIGATO VERM.NO/ROSS/ORMEASCO CL75                  | A
 2013    |       9 |  * SCONTO SUBTOTALE                                | A
 2013    |      10 | Rif. Trn. N. 19 del 17/04/2013 Cassa N. 00001      | C

标记为“C”的字段rfa_tpr的记录是前面的行组的标题.我需要将行作为行组的标题而不是页脚(分隔符)放置,所以我想检索如下结果集:

 rfa_yea | rfa_idx |                      rfa_dsp                       | rfa_tpr
---------+---------+----------------------------------------------------+---------
 2013    |       3 | Rif. Trn. N. 17 del 17/04/2013 Cassa N. 00001      | C
 2013    |       1 | PIGATO VERM.NO/ROSS/ORMEASCO CL75                  | A
 2013    |       2 | ESTATE\134134134047 BICCHIERE SING.VERDE           | A
 2013    |      10 | Rif. Trn. N. 19 del 17/04/2013 Cassa N. 00001      | C
 2013    |       4 | BIB.RED BULL LAT.CL25 ENER.DRI                     | A
 2013    |       5 | BIB.RED BULL LAT.CL25 ENER.DRI                     | A
 2013    |       6 | SHOPPER 30X60 MAXI X 1000                          | A
 2013    |       7 | SHOPPER HD 27X50 MEDIE X 1000                      | A
 2013    |       8 | PIGATO VERM.NO/ROSS/ORMEASCO CL75                  | A
 2013    |       9 |  * SCONTO SUBTOTALE                                | A

有只有sql解决方案吗?该解决方案应该适用于这些类型的数据库服务器:MSsql,PostgresqlMysqL.

注意

我可以有多个分隔符(页脚)行,而不仅仅是示例中的两个…

解决方法:

SELECT a.rfa_yea ,
        a.rfa_idx ,
        a.rfa_dsp ,
        a.rfa_tpr
FROM table1 a
INNER JOIN table1 c ON a.rfa_idx <= c.rfa_idx AND c.rfa_tpr = 'C'
GROUP BY  a.rfa_yea ,
        a.rfa_idx ,
        a.rfa_dsp ,
        a.rfa_tpr
ORDER BY MIN(c.rfa_idx), a.rfa_tpr DESC, a.rfa_idx 

SQL Server Demo

MySQL Demo

PostgreSQL Demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐