select unit.u4 as 单位,wistable001.f4 as 门牌号,wistable001.wisfield101 as 女方姓名, wistable001.wisfield161 as 男方姓名,birth_boys.boys as 现有男孩数,birth_girls.girls as 现有女孩数, max(wistable003.wisfield311) as 最小孩子出生时间, case wistable004.wisfield404 when 820 then '男扎' when 810 then '女扎' when 700 then '上环' when 300 then '皮埋' end as 避孕措施,wistable004.wisfield401 as 起始时间, wistable004.d12 as 施术单位 from unit left outer join wistable001 on (left(unit.code,9)='421181009' and unit.code=left(wistable001.f1,15)) left outer join wistable003 on (wistable001.f1=wistable003.f1) left outer join wistable004 on (wistable001.f1=wistable004.f1 and wistable004.wisfield401 between '2007-3-16' and '2008-02-29') left outer join birth_boys on (wistable001.f1=birth_boys.f1) left outer join birth_girls on (wistable001.f1=birth_girls.f1) order by unit.u4 请看下这些错在哪里,运行后提示: 服务器: 消息 8118,级别 16,状态 1,行 1 列 'unit.u4' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable001.f4' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable001.WISField101' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable001.WISField161' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'birth_boys.boys' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'birth_girls.girls' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable004.WISField404' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable004.WISField404' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable004.WISField404' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable004.WISField404' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable004.WISField401' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。 服务器: 消息 8118,级别 16,状态 1,行 1 列 'wistable004.d12' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
以前我编写的是: select unit.u4 as 单位,wistable001.f4 as 门牌号,wistable001.wisfield101 as 女方姓名, wistable001.wisfield161 as 男方姓名,birth_boys.boys as 现有男孩数,birth_girls.girls as 现有女孩数, max(wistable003.wisfield311) as 最小孩子出生时间, case wistable004.wisfield404 when 820 then '男扎' when 810 then '女扎' when 700 then '上环' when 300 then '皮埋' end as 避孕措施,wistable004.wisfield401 as 起始时间, wistable004.d12 as 施术单位 from unit,wistable001,wistable003,wistable004,birth_boys,birth_girls where left(wistable001.f1,9)='421181009' and unit.code=left(wistable001.f1,15) and wistable001.f1=birth_boys.f1 and wistable001.f1=birth_girls.f1 and wistable001.f1=wistable004.f1 and wistable001.f1=wistable003.f1 and wistable004.wisfield401 between '2007-3-16' and '2008-02-29' group by unit.u4,wistable004.wisfield404,birth_boys.boys,birth_girls.girls,wistable004.wisfield401, wistable004.d12,wistable001.f4,wistable001.wisfield101,wistable001.wisfield161
这个可以运行,但运行时间要两三分钟,我后来才改为那样的,不知道错在哪里。 没人教,全靠自学,好难啊。我们的数据库是别人公司开发的,问那公司,他们不肯告诉任何技术上的问题。 求各位大虾们助小弟一把。 |