在论坛上看到这么一个问题。。
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5 要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。这个可以用 group by sum 实现
那我想稍微改下,具体如下:5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5 要求的处数据
2005-01-01 1-3
2005-01-02 5 我的表B数据不止这些,而且数据量也可能会上万。有可能是
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-01 4
2005-01-02 5
2005-01-02 6那么我要的结果是2005-01-01 1-3-4
2005-01-02 5-6请问一下。这种情况有没有可能一个SQL语句就能够完成?
解决了觉得分数少了可以在加!我论坛分挺多的。呵呵。
5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5 要求的处数据
2005-01-01 4
2005-01-02 5
合计 9
试用一个Sql语句完成。这个可以用 group by sum 实现
那我想稍微改下,具体如下:5,表B
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-02 5 要求的处数据
2005-01-01 1-3
2005-01-02 5 我的表B数据不止这些,而且数据量也可能会上万。有可能是
C1 c2
2005-01-01 1
2005-01-01 3
2005-01-01 4
2005-01-02 5
2005-01-02 6那么我要的结果是2005-01-01 1-3-4
2005-01-02 5-6请问一下。这种情况有没有可能一个SQL语句就能够完成?
解决了觉得分数少了可以在加!我论坛分挺多的。呵呵。
with tb as(
select '2005-01-01' C1,1 c2 from dual union all
select '2005-01-01', 3 from dual union all
select '2005-01-01', 4 from dual union all
select '2005-01-02', 5 from dual union all
select '2005-01-02', 6 from dual)
--以上为提供数据的语句
select c1,replace(wm_concat(c2),',','-') col2
from tb
group by c1
C1 COL2
---------- --------------------
2005-01-01 1-3-4
2005-01-02 5-6
运用的太灵活了,我当时想到了那个连接函数。但是我没想到用REPLACE 这样处理。因为我要的结果还要做不少处理的。。准备结贴了。。谢谢各位。