如何用SQL语句比较多个字段的大小?

jacksoncan 2013-02-14 02:33:08
有一个叫Y的表格,有如下的字段:

代码;
Y2013;
Y2012;
...
Y2007;
最大值;
最小值;
平均值;

现在要求比较Y2007-Y2013这几个字段,然后计算出其最大值,最小值和平均值,然后更新到相应的字段中,这个SQL应该怎么写?请高手们指教呀。
...全文
838 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jiejiep 2013-10-20
楼主,最后如何解决的?
  • 打赏
  • 举报
回复
ieh2014 2013-09-04
http://bbs.csdn.net/topics/390581734 求解。。
  • 打赏
  • 举报
回复
jacksoncan 2013-02-18
没想到这个问题这么复杂啊?我原来以为有内置函数能解决呢。怪不得access版里等了半天都没人回答了,晕。 实际上平均值那一列是好算的,就是: 平均值=(Y2007+Y2008+...+Y2013)/7 但是最大值,最小值那两列,如果用IIF函数判断来算的话,就要写很多,很复杂了,所以我才想问一下高手们有没有内置的函数或简单的方法可行。
引用 6 楼 DBA_Huangzj 的回复:
1、access有专门的语法,和t-sql有一定程度的不兼容,所以最好去数据库开发→其他数据库 那个专区的access专区去问,不然用T-SQL写了access用不到就大家都没意思了。 2、你这个问题,就我的水平来说,我会用列转行,然后再用max、min、avg函数来取,再行转列。
  • 打赏
  • 举报
回复
lxqlyld 2013-02-16
select max(列名) as 最大值,min(列名) as 最小值,avg(列名) as 平均值 from Y “列名”包含Y2013; Y2012; ... Y2007;内容
  • 打赏
  • 举报
回复
jacksoncan 2013-02-16
这样得不出结果啊,我是想问SQL语句该怎么写?
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-16
1、access有专门的语法,和t-sql有一定程度的不兼容,所以最好去数据库开发→其他数据库 那个专区的access专区去问,不然用T-SQL写了access用不到就大家都没意思了。 2、你这个问题,就我的水平来说,我会用列转行,然后再用max、min、avg函数来取,再行转列。
  • 打赏
  • 举报
回复
jacksoncan 2013-02-16
回复版主DBA_Huangzj: 问题1:是access 问题2:不需要对比,各列的关系如下: 最大值=MAX(Y2007,Y2008,...Y2013); 最小值=MIN(Y2007,Y2008,...Y2013); 平均值=AVG(Y2007,Y2008,...Y2013); 就是说每一行中的最大值、最小值和平均值分别是该行中Y2007~Y2013这几个列的最大值,最小值和平均值
引用 4 楼 DBA_Huangzj 的回复:
先问清楚问题: 问题1:你这个是access吗? 问题2:每个列是否先要计算出最大最小平均然后再和其他列对比?得出哪个列?
  • 打赏
  • 举报
回复
發糞塗牆 2013-02-16
先问清楚问题: 问题1:你这个是access吗? 问题2:每个列是否先要计算出最大最小平均然后再和其他列对比?得出哪个列?
  • 打赏
  • 举报
回复
shoppo0505 2013-02-15
最大值= max ( Y2007 Y2013 ), 最小值= min ( Y2007 Y2013 ) 按照楼主的问题,我只能这么回答了。
  • 打赏
  • 举报
回复
相关推荐
发帖
疑难问题
加入

2.1w+

社区成员

MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
申请成为版主
帖子事件
创建了帖子
2013-02-14 02:33
社区公告
暂无公告