我写的语句如下:
SELECT a.LOGID,
a.LOGNAME,
total=(
SELECT isnull(sum(b.LOG_TOTAL),0)
FROM dbo.LOG_TOTAL as b
where a.LOGID=b.LOGID
--问题在这句
and b.MODE=CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
),
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
FROM LOG as a
GROUP BY a.LOGID,a.LOGNAME,
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
也就是说 MODE字段在两个表里面都有,但保存的参数不一样,我使用case来使得LOG表的MODE字段和LOG_TOTAL字段内容一致但是执行过程中报错
错误为sql server内部错误
谢谢
SELECT a.LOGID,
a.LOGNAME,
total=(
SELECT isnull(sum(b.LOG_TOTAL),0)
FROM dbo.LOG_TOTAL as b
where a.LOGID=b.LOGID
--问题在这句
and b.MODE=CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
),
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
FROM LOG as a
GROUP BY a.LOGID,a.LOGNAME,
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
也就是说 MODE字段在两个表里面都有,但保存的参数不一样,我使用case来使得LOG表的MODE字段和LOG_TOTAL字段内容一致但是执行过程中报错
错误为sql server内部错误
谢谢
解决方案 »
- ODBC连接后,“更改默认数据库”中,只显示系统默认的数据库,怎么回事?
- 关于利用视图计算总成绩的问题..大侠们救命啊~
- 查询分析器中有设置:将制表符保存为空格,这个设置作用何在呀?
- 请帮我看看这个代码有什么问题.谢谢
- SQLSERVER2000 安装问题!急!!!
- sql 选出某一栏数据取余后的结果符合某个条件
- {求助}win 2000server系统 安装SQL2000报错,配置服务器失败
- 求一方法
- *****************请教linked server使用高手(非高手莫入)****************
- 请问sqlserver2000最多能存储多少条记录?我想知道权威可靠的数据
- 数据库访问超慢~~~~急急,在线等~~~~~~~~~~
- 在函数内不正确地使用了 'INSERT'?
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
没有聚合函数,为什么要GROUP BY
把GROUP BY 里的CASE删除就好了
CASE a.MODE
WHEN LIKE 'H_' THEN 'H'
ELSE 'G'
END
因为还有一些字段需要sum的,我忘了贴出来
SELECT a.LOGID,
a.LOGNAME,
total=(
SELECT isnull(sum(b.LOG_TOTAL),0)
FROM dbo.LOG_TOTAL as b
where a.LOGID=b.LOGID
--问题在这句
and b.MODE=CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
),
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END,
sum(a.log_value_1),
sum(a.log_value_2)
FROM LOG as a
GROUP BY a.LOGID,a.LOGNAME,
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
不是b.LOG_TOTAL已经sum过了嘛
case语句这样写也不对
a.LOGNAME,
total=sum (case when b.mode=(CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END) then b.log_total else 0 end),
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END,
sum(a.log_value_1),
sum(a.log_value_2)
FROM LOG as a
left join dbo.LOG_TOTAL as b on a.LOGID=b.LOGID
GROUP BY a.LOGID,a.LOGNAME,
CASE a.MODE WHEN 'HE' THEN 'H' WHEN 'HT' THEN 'H' WHEN 'HM' THEN 'H' ELSE 'G' END
早就SP4了呀,我去年就下载安装了