以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQL语句的更改 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73926) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:阿福 -- 发布时间:2015/8/29 12:04:00 -- SQL语句的更改 再次麻烦老师帮我修改一下!!!! 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 "
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2015/8/29 12:07:00 -- 不是修改好了吗?把空格去掉? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:阿福 -- 发布时间:2015/8/29 14:18:00 -- 不行的,错误提示: .NET Framework 版本:2.0.50727.8000 Foxtable 版本:2014.11.11.1 错误所在事件: 详细错误信息: 使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:阿福 -- 发布时间: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 错误所在事件: 详细错误信息: 列名 \'日期\' 无效。 列名 \'日期\' 无效。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2015/8/29 14:47:00 -- 水平有限,凭这个改不好,发列子上来测试一下 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:阿福 -- 发布时间: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, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数" 上面代码后,结果成下表
但我想变成这样的效果:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2015/8/29 15:38:00 -- 分组的时候只按年来分组 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:阿福 -- 发布时间:2015/8/29 15:44:00 -- 是的,需要同“年”和同“sys_user”成同一列 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2015/8/29 15:47:00 -- "as a group by 年, sys_user, 母猪存栏数, 肉猪存栏数_年末, 肉猪存栏数_年初, 肉猪销售数" 太多了,用2列就行了把sys_user后面的都去掉
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-- 作者:阿福 -- 发布时间:2015/8/29 15:50:00 -- 我试过,错误提示 .NET Framework 版本:2.0.50727.8000 Foxtable 版本:2014.11.11.1 错误所在事件: 详细错误信息: 选择列表中的列 \'a.母猪存栏数\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 |