wuzhong 2014-12-11 16:15
浏览 654

请教一个数据库分组问题

我写了这么一个脚本
SELECT da_sp.spdm, da_sp.sp, da_sp.jldw, da_sp.ggxh, da_sp.wbdw,

da_sp.wbbzl, da_sp.nbdw, da_sp.nbbzl, da_sp.cbj, da_sp.zhjj,
da_sp.pddw, da_sp.pdxs, da_sp.fdyclbj,

da_sp.zjpsbj, xs_jxcrb.spnm, sum(xs_jxcrb.cksl) as cksl, isnull(c.bqsl,0) as bqsl,
0.00 as ygsl, 0.00 as ygkcdwsl, 0.00 as qyyl,

0.00 as yjxhsl

FROM da_sp, xs_jxcrb, (select spnm,sum(bqsl) as bqsl from kc_zz GROUP by spnm) c

WHERE ( xs_jxcrb.spnm = da_sp.spnm ) and ( da_sp.qybj = 1 ) AND ( da_sp.jkcbj > 0 ) and

( da_sp.spnm *= c.spnm) and xs_jxcrb.xsrq>=20141211 and xs_jxcrb.xsrq<=20141211
and datepart(dw,left(convert(char(8),xs_jxcrb.xsrq),4) + '-' + substring(convert(char(8),xs_jxcrb.xsrq),5,2) +'-' + right(convert(char(8),xs_jxcrb.xsrq),2))=5
and da_sp.fdyclbj=1
group by xs_jxcrb.spnm,da_sp.spdm,da_sp.sp,da_sp.jldw,da_sp.ggxh,da_sp.wbdw,da_sp.wbbzl,da_sp.nbdw,da_sp.nbbzl,da_sp.cbj,da_sp.zhjj,da_sp.pddw,da_sp.pdxs,c.bqsl,da_sp.fdyclbj,da_sp.zjpsbj having sum(xs_jxcrb.cksl)>0 order by da_sp.spdm

但是显示的结果是没有按照单个的spnm汇总显示,而是有很多重复记录,原因就在于where 子句中包含了and datepart(dw,left(convert(char(8),xs_jxcrb.xsrq),4) + '-' + substring(convert(char(8),xs_jxcrb.xsrq),5,2) +'-' + right(convert(char(8),xs_jxcrb.xsrq),2))=5 的关系,如果去掉这个条件的话group by正常,不知道怎么解决

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥50 如何用脚本实现输入法的热键设置
    • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
    • ¥30 深度学习,前后端连接
    • ¥15 孟德尔随机化结果不一致
    • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
    • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
    • ¥15 谁有desed数据集呀
    • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
    • ¥15 关于#hadoop#的问题
    • ¥15 (标签-Python|关键词-socket)