读书人

数据没能汇总起来Why,该如何处理

发布时间: 2012-05-10 16:02:39 作者: rapoo

数据没能汇总起来,Why
规则:
根据“Unit”字段作为条件,对“MonitorType”字段赋值,以对数据做一下汇总,但是发现有的记录汇总起来了,有的没有汇总起来,这是为什么呢?

SQL:
update SpecialDataSumByHour set MonitorType=(case Unit when 'PPM' then 'CM' when 'g/Kg' then 'HM' when '℃' then 'TM' when 'kPa' then 'AM' when 'm3/h' then 'FW' when 'KJ' then 'EM' end)


汇总之后:select * from SpecialDataSumByHour where MonitorType is NULL 结果如下图



为什么呢???为什么有的没有赋值呢?

[解决办法]

探讨
规则:
根据“Unit”字段作为条件,对“MonitorType”字段赋值,以对数据做一下汇总,但是发现有的记录汇总起来了,有的没有汇总起来,这是为什么呢?

SQL:
update SpecialDataSumByHour set MonitorType=(case Unit when 'PPM' then 'CM' when 'g/Kg' then 'HM' when ……

[解决办法]
SQL code
update SpecialDataSumByHour set MonitorType=(case Unit when 'PPM' then 'CM' when 'g/Kg' then 'HM' when '℃' then 'TM' when 'kPa' then 'AM' when 'm3/h' then 'FW' when 'KJ' then 'EM' else '123'end)--加个ELSE  这样可以定位 Unit 的值是??,把漏掉的这个??值加到 WHEN THNE 里
[解决办法]
SQL code
update SpecialDataSumByHour set MonitorType=(case Unit when N'PPM'  then 'CM'                            when N'g/Kg' then 'HM'                            when N'℃'   then 'TM'                            when N'kPa'  then 'AM'                            when N'm3/h' then 'FW'                            when N'KJ'   then 'EM'                            else '未定义' end)
[解决办法]
update SpecialDataSumByHour
set MonitorType=(case Unit when N'PPM' then 'CM'
when N'g/Kg' then 'HM'
when N'℃' then 'TM'
when N'kPa' then 'AM'
when N'm3/h' then 'FW'
when N'KJ' then 'EM'
else '未定义' end)
正如5楼所做的,你应该把格式写得清楚点。不然不光是我们看得不舒服,你自己也一样,这是编程习惯问题。

读书人网 >SQL Server

热点推荐