having ( max(帐单号)<='+edit1.text+'and min(帐单号)>='+edit2.text+' and 菜品名称 in ("燕京","低消热茶"))');
这样写,错在哪里?提示列名“燕京”,“低消热茶”无效{
select 点菜人名,菜品名称,单位,sum(数量) as 总数,max(帐单号)as 最大帐单号 from y_已结明细
group by 点菜人名,菜品名称,单位 having ( max(帐单号)<='0059046'and min(帐单号)>='0057600' and 菜品名称 in ('燕京','纸巾')) order by 点菜人名 }在查询分析器中执行是正常的 请高手们指点
这样写,错在哪里?提示列名“燕京”,“低消热茶”无效{
select 点菜人名,菜品名称,单位,sum(数量) as 总数,max(帐单号)as 最大帐单号 from y_已结明细
group by 点菜人名,菜品名称,单位 having ( max(帐单号)<='0059046'and min(帐单号)>='0057600' and 菜品名称 in ('燕京','纸巾')) order by 点菜人名 }在查询分析器中执行是正常的 请高手们指点
in ('+'''燕京'''+','+'''低消热茶'''+'))');
但是建议你还是用参数来传递的好。清晰,不容易出错。
该条件应写在 where 中,因为having条件是用来对 count、max、sum 这样的函数进行判断。
正确写法:
select 点菜人名,菜品名称,单位,sum(数量) as 总数,max(帐单号)as 最大帐单号 from y_已结明细
where 菜品名称 in ('燕京','纸巾')
group by 点菜人名,菜品名称,单位
having ( max(帐单号)<='0059046'and min(帐单号)>='0057600' )
order by 点菜人名
------------------------------------------------------------------
如果你的‘帐单号’是整形字段,那么后面的edit1.text应该做类型转换的,如: StrToInt(edit1.text);