首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 我无法完成这个sql统计!!!急!!!! [已结贴,结贴人:sleihd]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 18:40:21 楼主
    库中有一个wttype(问题类别)字段,以它为条件,求另一个字段itemdepmark(责任扣分)所有的扣分的和。具体如下:
    wttype一共有5类,分别是:行车,调车,客运,货运,管理;
    想以每个类别为条件,
    求这个类别对应的itemdepmark字段中分数的和,group by itemdep(itemdep是表中部门的字段)。
    现在用:select sum(itemdepmark)as jf,itemdep where wttype=‘行车’group by itemdep和for i=1 to 34
    能实现“行车”类别的积分和的显示,怎样才能在一个显示界面同时显示5类wttype相对应的积分和呢?能不能把这5类的统计用一个sql表示呢?谢谢各位老师,麻烦了!
    120  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:14:021楼 得分:0
    select (select sum(itemdepmark)from crecords where wttype='行车') as jf,(select sum(itemdepmark) from crecords where wttype='调车') as dcjf,itemdep from crecords group by itemdep order by sum(*) asc

    上面的sql执行完后老是提示目前没有记录,其实记录存在啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:15:592楼 得分:20
    你把表列的详细一点,说不清楚,如,还有哪个是主键
    table(..wttype..itemdepmark..itemdep)
    最好把数据也弄点出来,这样容易分析
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:16:353楼 得分:0
    select中嵌套select可以吗?请各位大师指点!!!千恩万谢!!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:25:154楼 得分:0
    表名:crecords。表内容如下:

    itemdep            wttype            itemdepmark     
    聊城站                行车                      -3
    聊城站                调车                      -1
    聊城站                客运                      -1
    聊城站                货运                      -2
    聊城站                管理                      -1
    茌平站                行车                      -3
    茌平站                行车                      -3
    茌平站                调车                      -1
    茌平站                客运                      -1
    茌平站                货运                      -2
    茌平站                管理                      -1

    上表中的内容想以以下方式统计显示
    单位        行车类扣分合计      调车类扣分合计    客运类扣分合计      货运类扣分合计      管理类扣分合计  单位总分合计

    聊城站        -3                -1              -1                -2              -1            -8

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:30:215楼 得分:0
    4楼的内容我用
    sql=select sum(itemdepmark)as jf,itemdep from crecords where wttype=‘行车’group by itemdep
    rs.....
    和for i=1 to 34 只能显示行车类的合计积分 如何才能同时把其他几类显示出来?我用的for循环中只有一个rs.mvoment可用,能否将其他几类写进一个rs里?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:54:526楼 得分:20
    SQL code
    select sum(itemdepmark)as jf,itemdep,wttype where wttype in('行车','调车','客运','货运','管理') group by itemdep,wttype
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 23:57:307楼 得分:5
    SQL code
    select sum(itemdepmark)as jf,itemdep,wttype from crecords where wttype in('行车','调车','客运','货运','管理') group by itemdep,wttype
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 00:46:088楼 得分:50
    SQL code
    SELECT crecords.itemdep AS 单位, (select sum(a.itemdepmark) from crecords a where wttype='行车' and a.itemdep=crecords.itemdep) AS 行车类扣分合计, (select sum(b.itemdepmark) from crecords b where wttype='调车' and b.itemdep=crecords.itemdep) AS 调车类扣分合计, (select sum(c.itemdepmark) from crecords c where wttype='客运' and c.itemdep=crecords.itemdep) AS 客运类扣分合计, (select sum(d.itemdepmark) from crecords d where wttype='货运' and d.itemdep=crecords.itemdep) AS 货运类扣分合计, (select sum(e.itemdepmark) from crecords e where wttype='管理' and e.itemdep=crecords.itemdep) AS 管理类扣分合计, Sum(crecords.itemdepmark) AS 单位总分合计 FROM crecords GROUP BY crecords.itemdep;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 08:18:579楼 得分:0
    怎么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 09:37:3510楼 得分:25
    SQL code
    SELECT crecords.itemdep AS 单位, (select sum(a.itemdepmark) from crecords a where wttype='行车' and a.itemdep=crecords.itemdep) AS 行车类扣分合计, (select sum(b.itemdepmark) from crecords b where wttype='调车' and b.itemdep=crecords.itemdep) AS 调车类扣分合计, (select sum(c.itemdepmark) from crecords c where wttype='客运' and c.itemdep=crecords.itemdep) AS 客运类扣分合计, (select sum(d.itemdepmark) from crecords d where wttype='货运' and d.itemdep=crecords.itemdep) AS 货运类扣分合计, (select sum(e.itemdepmark) from crecords e where wttype='管理' and e.itemdep=crecords.itemdep) AS 管理类扣分合计, Sum(crecords.itemdepmark) AS 单位总分合计 FROM crecords GROUP BY crecords.itemdep;

    上面的SQL代码可以实现你的统计功能。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 10:29:4911楼 得分:0
    谢谢各位老师,尤其是jinshi_cn,我用了您的方法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 11:01:4412楼 得分:0
    又有新的问题:用了jinshi_cn老师的SELECT crecords.itemdep AS 单位, (select sum(a.itemdepmark) from crecords a where wttype='行车' and a.itemdep=crecords.itemdep) AS 行车类扣分合计, (select sum(b.itemdepmark) from crecords b where wttype='调车' and b.itemdep=crecords.itemdep) AS 调车类扣分合计, (select sum(c.itemdepmark) from crecords c where wttype='客运' and c.itemdep=crecords.itemdep) AS 客运类扣分合计, (select sum(d.itemdepmark) from crecords d where wttype='货运' and d.itemdep=crecords.itemdep) AS 货运类扣分合计, (select sum(e.itemdepmark) from crecords e where wttype='管理' and e.itemdep=crecords.itemdep) AS 管理类扣分合计, Sum(crecords.itemdepmark) AS 单位总分合计
    FROM crecords
    GROUP BY crecords.itemdep;
    可以实现以前的问题,我现在想以“单位总分”排序显示,在最后加了”order by 单位总分合计“的语句,页面提示:没有记录!是怎么回事啊?谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 16:36:2313楼 得分:0
    应该是:Order by Sum(crecords.itemdepmark)。具体代码如下:
    SQL code
    SELECT crecords.itemdep AS 单位, (select sum(a.itemdepmark) from crecords a where wttype='行车' and a.itemdep=crecords.itemdep) AS 行车类扣分合计, (select sum(b.itemdepmark) from crecords b where wttype='调车' and b.itemdep=crecords.itemdep) AS 调车类扣分合计, (select sum(c.itemdepmark) from crecords c where wttype='客运' and c.itemdep=crecords.itemdep) AS 客运类扣分合计, (select sum(d.itemdepmark) from crecords d where wttype='货运' and d.itemdep=crecords.itemdep) AS 货运类扣分合计, (select sum(e.itemdepmark) from crecords e where wttype='管理' and e.itemdep=crecords.itemdep) AS 管理类扣分合计, Sum(crecords.itemdepmark) AS 单位总分合计 FROM crecords GROUP BY crecords.itemdep ORDER BY Sum(crecords.itemdepmark);
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved