日期:2014-05-19  浏览次数:20885 次

比较难实现的SQL语句,请高手帮忙!(关于一个车辆预约系统)
以下是预约表
-----------------------
预约人               同乘人数     班次                   预约时间                                       备注    
刘洪             1 1 2007-04-09   00:00:00 NULL
刘二             1 2 2007-04-09   00:00:00 NULL
张三             0 3 2007-04-09   00:00:00 NULL
李四             0 4 2007-04-09   00:00:00 NULL
王五             1 3 2007-04-09   00:00:00 NULL
周六             1 1 2007-04-09   00:00:00 NULL
admin           1 2 2007-04-09   00:00:00 NULL
-------------------------
希望得到以下这个表
---------------------------------
预约人                     同乘人数               总人数     班次                   预约时间                   备注    
刘洪   周六         刘洪(1)   周六(1)           4             1                       2007-04-09               NULL
刘二   admin       刘二(1)   admin(1)         2         2                       2007-04-09               NULL
张三   王五         张三(0)   王五(1)           3             3                       2007-04-09                 NULL
李四                   李四(0)                           1             4                       2007-04-09                 NULL
-----------------------------------
条件:按照班次分组,将预约相同班次的预约人合并到一个字段并用空格分开,同时将每个预约人
所带同乘者人数附后并用括号括起来,总人数=预约人+同乘人数。预约时间只取最近的日期相同的
日期部分,不取时间。不知道我说明白了没有,在线等!

------解决方案--------------------
如果不要合并就比较简单了
group by 班次 order by 班次

关注一下
------解决方案--------------------
up
------解决方案--------------------
学习~~
不过想问下
刘二 admin 刘二(1) admin(1) 2 2 2007-04-09 NULL

那个总人数是2???
是不是该是4啊???按你说的
总人数=预约人+同乘人数
------解决方案--------------------
这种合并还是用程序写吧,SQL语句很难实现的,比较麻烦
------解决方案--------------------
字符串合并没有办法,加上函数应该可以,我写了一个测试的例子:
--建表
create table mytest
(
mname varchar(50),
num int,
part int