看看这是什么毛病

zjkqxjsxb 2008-06-03 03:12:58
R1...R60为每1分钟

SELECT stationNum, SUM(YL) AS t
FROM (SELECT stationNum,
(R1 + R2 + R3 + R4 + R5 + R6 + R7 + R8 + R9 + R10 + R11 + R12 + R13 + R14 +
R15 + R16 + R17 + R18 + R19 + R20 + R21 + R22 + R23 + R24 + R25 + R26 + R27
+ R28 + R29 + R30 + R31 + R32 + R33 + R34 + R35 + R36 + R37 + R38 + R39 +
R40 + R41 + R42 + R43 + R44 + R45 + R46 + R47 + R48 + R49 + R50 + R51 + R52
+ R53 + R54 + R55 + R56 + R57 + R58 + R59 + R60) AS YL
FROM tabRain
WHERE ObserveTime BETWEEN '2008-06-02 20:00:00' AND '2008-06-03 20:00:00')
allst
GROUP BY stationNum
ORDER BY SUM(YL)
将expression转换为数据类型tinyint时发生算数溢出错误。而去掉order by子句则没问题,同样第一行也使用SUM(YL)就不出问题,为什么SUM(YL)出现在order by子句就出错。
...全文
61 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjkqxjsxb 2008-06-14
  • 打赏
  • 举报
回复
解决了,谢谢大家,(R1*1.0+R2...)
zjkqxjsxb 2008-06-04
  • 打赏
  • 举报
回复
问题是,只要去掉Order By SUM(YL)就不出问题,而sum(YL)在select子句中统计不出问题。
-晴天 2008-06-03
  • 打赏
  • 举报
回复
或者:
SELECT stationNum, SUM(YL) AS t 
FROM (SELECT stationNum,
(convert(int,R1) + R2 + R3 + R4 + R5 + R6 + R7 + R8 + R9 + R10 + R11 + R12 + R13 + R14 +
R15 + R16 + R17 + R18 + R19 + R20 + R21 + R22 + R23 + R24 + R25 + R26 + R27
+ R28 + R29 + R30 + R31 + R32 + R33 + R34 + R35 + R36 + R37 + R38 + R39 +
R40 + R41 + R42 + R43 + R44 + R45 + R46 + R47 + R48 + R49 + R50 + R51 + R52
+ R53 + R54 + R55 + R56 + R57 + R58 + R59 + R60) AS YL
FROM tabRain
WHERE ObserveTime BETWEEN '2008-06-02 20:00:00' AND '2008-06-03 20:00:00')
allst
GROUP BY stationNum
ORDER BY SUM(YL)
-晴天 2008-06-03
  • 打赏
  • 举报
回复
各 R 列的数据类型是 tinyint 吧?
用这个试试:
SELECT stationNum, SUM(YL) AS t
FROM (SELECT stationNum,
(1000 + R1 + R2 + R3 + R4 + R5 + R6 + R7 + R8 + R9 + R10 + R11 + R12 + R13 + R14 +
R15 + R16 + R17 + R18 + R19 + R20 + R21 + R22 + R23 + R24 + R25 + R26 + R27
+ R28 + R29 + R30 + R31 + R32 + R33 + R34 + R35 + R36 + R37 + R38 + R39 +
R40 + R41 + R42 + R43 + R44 + R45 + R46 + R47 + R48 + R49 + R50 + R51 + R52
+ R53 + R54 + R55 + R56 + R57 + R58 + R59 + R60 - 1000) AS YL
FROM tabRain
WHERE ObserveTime BETWEEN '2008-06-02 20:00:00' AND '2008-06-03 20:00:00')
allst
GROUP BY stationNum
ORDER BY SUM(YL)
dbcontrols 2008-06-03
  • 打赏
  • 举报
回复
BETWEEN #2008-06-02 20:00:00# AND #2008-06-03 20:00:00#

日期型用#

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧