ORACLE 开发跪求大神,没有更多分,解决了,我给您打工挣分

liujun3496 2014-02-12 03:45:22
有如下表
唯一ID 商家核单人 商家核对订单时间 商家核对金额 客户核单人 客户核对订单时间 客户核对金额
10001 张三 2014-01-01 3000.0 李四 2014-01-02 3000.0
10002 张三 2014-01-01 2000.0 王五 2014-01-03 2001.0
10003 李四 2014-01-02 1000.0 张三 2014-01-04 1000.0


我想得到结果
核单人 商家核单数量 客户核单数量 商家核单金额 客户核单金额
张三 3 0 5000 1000
李四 1 1 1000 3000
王五 0 1 0 2001
...全文
228 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CT_LXL 2014-02-12
  • 打赏
  • 举报
回复
引用 6 楼 liujun3496 的回复:
[quote=引用 5 楼 zlloct 的回复:] [quote=引用 3 楼 liujun3496 的回复:] [quote=引用 1 楼 zlloct 的回复:] [quote=引用 楼主 liujun3496 的回复:]
想帮你,但是有点不太明白: 商家核单数量 客户核单数量 是怎么来的? 我感觉数据有点不对 张三的应该为 2和1吧 求解释[/quote] 有如下表 唯一ID 商家核单人 商家核对订单时间 商家核对金额 客户核单人 客户核对订单时间 客户核对金额 10001 张三 2014-01-01 3000.0 李四 2014-01-02 3000.0 10002 张三 2014-01-01 2000.0 王五 2014-01-03 2001.0 10003 李四 2014-01-02 1000.0 张三 2014-01-04 1000.0 我想得到结果 核单人 商家核单数量 客户核单数量 商家核单金额 客户核单金额 张三 2 1 5000 1000 李四 1 1 1000 3000 王五 0 1 0 2001[/quote]
SELECT T1.PEOPLE,
       (SELECT COUNT(*) FROM TEST T2 WHERE T2.商家核单人 = T1.PEOPLE),
       (SELECT COUNT(*) FROM TEST T3 WHERE T3.客户核单人 = T1.PEOPLE),
       (SELECT NVL(SUM(T4.商家核对金额), 0)
          FROM TEST T4
         WHERE T4.商家核单人 = T1.PEOPLE),
       (SELECT NVL(SUM(T5.客户核对金额), 0)
          FROM TEST T5
         WHERE T5.客户核单人 = T1.PEOPLE)
  FROM (SELECT DISTINCT 商家核单人 PEOPLE
          FROM TEST
        UNION
        SELECT DISTINCT 客户核单人 PEOPLE
          FROM TEST) T1
[/quote] 谢谢高手的指导!辛苦! 唯一ID 核单人 核对订单时间 核对金额 类型 10001 张三 2014-01-01 100 商家核单 10002 张三 2014-01-01 200 客户核单 10003 李四 2014-01-02 300 商家核单 请问高手,我把这个表重新设计成这样,得到我要的结果是不是效率高点? [/quote] 恩,这样设计更直观,建议用这种方法设计表。 开会去了。
liujun3496 2014-02-12
  • 打赏
  • 举报
回复
引用 5 楼 zlloct 的回复:
[quote=引用 3 楼 liujun3496 的回复:] [quote=引用 1 楼 zlloct 的回复:] [quote=引用 楼主 liujun3496 的回复:]
想帮你,但是有点不太明白: 商家核单数量 客户核单数量 是怎么来的? 我感觉数据有点不对 张三的应该为 2和1吧 求解释[/quote] 有如下表 唯一ID 商家核单人 商家核对订单时间 商家核对金额 客户核单人 客户核对订单时间 客户核对金额 10001 张三 2014-01-01 3000.0 李四 2014-01-02 3000.0 10002 张三 2014-01-01 2000.0 王五 2014-01-03 2001.0 10003 李四 2014-01-02 1000.0 张三 2014-01-04 1000.0 我想得到结果 核单人 商家核单数量 客户核单数量 商家核单金额 客户核单金额 张三 2 1 5000 1000 李四 1 1 1000 3000 王五 0 1 0 2001[/quote]
SELECT T1.PEOPLE,
       (SELECT COUNT(*) FROM TEST T2 WHERE T2.商家核单人 = T1.PEOPLE),
       (SELECT COUNT(*) FROM TEST T3 WHERE T3.客户核单人 = T1.PEOPLE),
       (SELECT NVL(SUM(T4.商家核对金额), 0)
          FROM TEST T4
         WHERE T4.商家核单人 = T1.PEOPLE),
       (SELECT NVL(SUM(T5.客户核对金额), 0)
          FROM TEST T5
         WHERE T5.客户核单人 = T1.PEOPLE)
  FROM (SELECT DISTINCT 商家核单人 PEOPLE
          FROM TEST
        UNION
        SELECT DISTINCT 客户核单人 PEOPLE
          FROM TEST) T1
[/quote] 谢谢高手的指导!辛苦! 唯一ID 核单人 核对订单时间 核对金额 类型 10001 张三 2014-01-01 100 商家核单 10002 张三 2014-01-01 200 客户核单 10003 李四 2014-01-02 300 商家核单 请问高手,我把这个表重新设计成这样,得到我要的结果是不是效率高点?
CT_LXL 2014-02-12
  • 打赏
  • 举报
回复
引用 3 楼 liujun3496 的回复:
[quote=引用 1 楼 zlloct 的回复:] [quote=引用 楼主 liujun3496 的回复:]
想帮你,但是有点不太明白: 商家核单数量 客户核单数量 是怎么来的? 我感觉数据有点不对 张三的应该为 2和1吧 求解释[/quote] 有如下表 唯一ID 商家核单人 商家核对订单时间 商家核对金额 客户核单人 客户核对订单时间 客户核对金额 10001 张三 2014-01-01 3000.0 李四 2014-01-02 3000.0 10002 张三 2014-01-01 2000.0 王五 2014-01-03 2001.0 10003 李四 2014-01-02 1000.0 张三 2014-01-04 1000.0 我想得到结果 核单人 商家核单数量 客户核单数量 商家核单金额 客户核单金额 张三 2 1 5000 1000 李四 1 1 1000 3000 王五 0 1 0 2001[/quote]
SELECT T1.PEOPLE,
       (SELECT COUNT(*) FROM TEST T2 WHERE T2.商家核单人 = T1.PEOPLE),
       (SELECT COUNT(*) FROM TEST T3 WHERE T3.客户核单人 = T1.PEOPLE),
       (SELECT NVL(SUM(T4.商家核对金额), 0)
          FROM TEST T4
         WHERE T4.商家核单人 = T1.PEOPLE),
       (SELECT NVL(SUM(T5.客户核对金额), 0)
          FROM TEST T5
         WHERE T5.客户核单人 = T1.PEOPLE)
  FROM (SELECT DISTINCT 商家核单人 PEOPLE
          FROM TEST
        UNION
        SELECT DISTINCT 客户核单人 PEOPLE
          FROM TEST) T1
liujun3496 2014-02-12
  • 打赏
  • 举报
回复
或者说,要得到这个结果,怎么样重新设计该表?
liujun3496 2014-02-12
  • 打赏
  • 举报
回复
引用 1 楼 zlloct 的回复:
[quote=引用 楼主 liujun3496 的回复:]
想帮你,但是有点不太明白: 商家核单数量 客户核单数量 是怎么来的? 我感觉数据有点不对 张三的应该为 2和1吧 求解释[/quote] 有如下表 唯一ID 商家核单人 商家核对订单时间 商家核对金额 客户核单人 客户核对订单时间 客户核对金额 10001 张三 2014-01-01 3000.0 李四 2014-01-02 3000.0 10002 张三 2014-01-01 2000.0 王五 2014-01-03 2001.0 10003 李四 2014-01-02 1000.0 张三 2014-01-04 1000.0 我想得到结果 核单人 商家核单数量 客户核单数量 商家核单金额 客户核单金额 张三 2 1 5000 1000 李四 1 1 1000 3000 王五 0 1 0 2001
liujun3496 2014-02-12
  • 打赏
  • 举报
回复
引用 1 楼 zlloct 的回复:
[quote=引用 楼主 liujun3496 的回复:]
想帮你,但是有点不太明白: 商家核单数量 客户核单数量 是怎么来的? 我感觉数据有点不对 张三的应该为 2和1吧 求解释[/quote] 高手眼力很好!我的确是笔误了!请高手赐教!拜谢!
CT_LXL 2014-02-12
  • 打赏
  • 举报
回复
引用 楼主 liujun3496 的回复:
想帮你,但是有点不太明白: 商家核单数量 客户核单数量 是怎么来的? 我感觉数据有点不对 张三的应该为 2和1吧 求解释

1,617

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧