V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
KagamineLenKai2
V2EX  ›  问与答

求助,我该如何用 sql 实现这种报表排版?

  •  
  •   KagamineLenKai2 · 2016-10-28 17:32:32 +08:00 · 1394 次点击
    这是一个创建于 2977 天前的主题,其中的信息可能已经有所发展或是发生改变。
    node | apply_id | time | operator_name
    1 | 10000 | 2016/10/28 15:24 | Clarkson
    2 | 10000 | 2016/10/28 15:25 | May
    3 | 10000 | 2016/10/28 15:26 | May
    1 | 10000 | 2016/10/28 15:27 | Clarkson
    2 | 10000 | 2016/10/28 15:28 | May
    3 | 10000 | 2016/10/28 15:29 | May
    1 | 10000 | 2016/10/28 15:30 | Clarkson
    2 | 10000 | 2016/10/28 15:31 | May
    3 | 10000 | 2016/10/28 15:32 | May
    1 | 10000 | 2016/10/28 15:33 | Clarkson
    2 | 10000 | 2016/10/28 15:34 | May

    这是我需要查询的原表,实际业务中使用的表要复杂很多。 node 1 为起点, 1 结束后进入 2 ,如果 2 退回 1 的话会生成 3

    apply_id | 1_time | 1_operator_name | 2_time | 2_operator_name | 3_time | 3_operator_name
    10000 | 2016/10/28 15:24 | Clarkson | 2016/10/28 15:25 | May | 2016/10/28 15:26 | May
    10000 | 2016/10/28 15:27 | Clarkson | 2016/10/28 15:28 | May | 2016/10/28 15:29 | May
    10000 | 2016/10/28 15:30 | Clarkson | 2016/10/28 15:31 | May | 2016/10/28 15:32 | May
    10000 | 2016/10/28 15:33 | Clarkson | 2016/10/28 15:34 | May

    这是我想生成的表。但是我不知道语句该怎么写才能排成这个样子……
    现在的做法是先把原表按 node 分成 1 2 3 三个表,再 left join on apply_id
    不过这样出来的结果是三个表排列组合的所有结果,一共 4×4×3=48 行,所以大概要在 time 那里加个判断?
    请教各位 dalao 该怎么实现…蟹蟹…/(ㄒoㄒ)/~~
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5512 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:56 · PVG 14:56 · LAX 22:56 · JFK 01:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.