Foxtable(狐表)用户栏目专家坐堂 → SQL语句的更改


  共有3638人关注过本帖树形打印复制链接

主题:SQL语句的更改

帅哥哟,离线,有人找我吗?
阿福
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
SQL语句的更改  发帖心情 Post By:2015/8/29 12:04:00 [只看该作者]

再次麻烦老师帮我修改一下!!!!

cmd.CommandText = "select sys_user, 年, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数 f rom" & _
"(Select sys_user, year(日期) As 年, avg(母猪_总) As 母猪存栏数, 0 As 肉猪存栏数_年末, 0 As 肉猪存栏数_年初, 0 As 肉猪销售数 f rom (select * f rom {母猪存栏结构}) as b where month(日期)= 12 group by sys_user, year(日期) u nion all " & _
"Select sys_user, year(日期), 0, 合计, 0 f rom{肉猪存栏结构} where month(日期) = 12 u nion all " & _
"Select sys_user, year(日期), 0, 0, 合计 f rom{肉猪存栏结构} where month(日期) = 1 u nion all " & _
"Select sys_user, year(销售_日期), 0, 0, 0, count(销售_日期) f rom {肉猪信息} group by year(销售_日期), sys_user) " & _
"As a where [sys_user] = '" & user.Name & "' group by year(日期), sys_user  order by year(日期), sys_user "

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/29 12:07:00 [只看该作者]

不是修改好了吗?把空格去掉?

 回到顶部
帅哥哟,离线,有人找我吗?
阿福
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
  发帖心情 Post By:2015/8/29 14:18:00 [只看该作者]

不行的,错误提示

.NET Framework 版本:2.0.50727.8000
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。


 回到顶部
帅哥哟,离线,有人找我吗?
阿福
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
  发帖心情 Post By:2015/8/29 14:30:00 [只看该作者]

cmd.CommandText = "select sys_user, 年, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数 f rom" & _
"(Select sys_user, year(日期) As 年, avg(母猪_总) As 母猪存栏数, 0 As 肉猪存栏数_年末, 0 As 肉猪存栏数_年初, 0 As 肉猪销售数 f rom (select * f rom {母猪存栏结构}) as b where month(日期)= 12 group by sys_user, year(日期) u nion all " & _
"Select sys_user, 日期, 0, 合计, 0, 0 f rom{肉猪存栏结构} where month(日期) = 12 u nion all " & _
"Select sys_user, 日期, 0, 0, 合计, 0 f rom{肉猪存栏结构} where month(日期) = 1 u nion all " & _
"Select sys_user, year(销售_日期), 0, 0, 0, count(销售_日期) f rom {肉猪信息} group by year(销售_日期), sys_user) " & _
"As a where [sys_user] = '" & user.Name & "' group by year(日期), sys_user  order by year(日期), sys_user "

.NET Framework 版本:2.0.50727.8000
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
列名 '日期' 无效。
列名 '日期' 无效。


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/29 14:47:00 [只看该作者]

水平有限,凭这个改不好,发列子上来测试一下

 回到顶部
帅哥哟,离线,有人找我吗?
阿福
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
  发帖心情 Post By:2015/8/29 15:34:00 [只看该作者]

cmd.CommandText = "Select sys_user, 年, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数 f rom" & _
"(Select sys_user, year(日期) As 年, avg(母猪_总) As 母猪存栏数, 0 As 肉猪存栏数_年末, 0 As 肉猪存栏数_年初, 0 As 肉猪销售数 f rom (select * f rom {母猪存栏结构}) as b where month(日期)= 12 group by sys_user, year(日期) u nion all " & _
"Select sys_user, year(日期), 0, 合计, 0, 0 f rom{肉猪存栏结构} where month(日期) = 12   u nion all " & _
"Select sys_user, year(日期), 0, 0, 合计, 0 f rom{肉猪存栏结构} where month(日期) = 1   u nion all " & _
"Select sys_user, year(销售_日期), 0, 0, 0, count(销售_日期) f rom {肉猪信息} group by sys_user, year(销售_日期))" & _
"as a group by 年, sys_user, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数"

上面代码后,结果成下表
  sys_user  年   母猪存栏数   肉猪存栏数年末   肉猪存栏数年初   肉猪销售数  
   开发者      0   0   0   0
    开发者   2015   0   0   0   35
    开发者   2015   0   0   1000   0
    开发者   2015   0   1300   0   0
    开发者   2015   26   0   0   0
    






但我想变成这样的效果:
  sys_user  年   母猪存栏数   肉猪存栏数年末   肉猪存栏数年初   肉猪销售数  
   开发者      0   0   0   0
    开发者   2015  26   1300   1000   35



 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/29 15:38:00 [只看该作者]

分组的时候只按年来分组

 回到顶部
帅哥哟,离线,有人找我吗?
阿福
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
  发帖心情 Post By:2015/8/29 15:44:00 [只看该作者]

是的,需要同“年”和同“sys_user”成同一列

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/29 15:47:00 [只看该作者]

"as a group by 年, sys_user, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数"
太多了,用2列就行了把sys_user后面的都去掉

 回到顶部
帅哥哟,离线,有人找我吗?
阿福
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
  发帖心情 Post By:2015/8/29 15:50:00 [只看该作者]

我试过,错误提示

.NET Framework 版本:2.0.50727.8000
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
选择列表中的列 'a.母猪存栏数' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。


 回到顶部
总数 12 1 2 下一页