一个数据库查询语句不会写(请教)

changfenglee 2014-01-24 02:21:29
这个本来是分类汇总的语句,功能是按生产线别统计工单的数量,与未达成目标的工单数量,但一直出错,请教各位大侠这怎么写啊!

qry3.Close;
qry3.SQL.Clear;
qry3.SQL.Add('select 生产线别,count(工单批量) as 总批数,count(直通良率< '''+ edt6.Text+''') as 未达成 from 首次量产 where (生产日期 between '''+RzDateTimeEdit2.Text+''' and '''+ RzDateTimeEdit3.Text+''') group by 生产线别');
qry3.Open;
...全文
174 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
beiguofengguang 2014-01-24
  • 打赏
  • 举报
回复
select 线别, count(1) 总批量, sum(直通率) 未达成 from (select 线别, 批量,不良数, case when 直通率 < 98 then 1 else 0 end 直通率 from 首次量产 ) group by 线别
changfenglee 2014-01-24
  • 打赏
  • 举报
回复
真的可以了,非常感谢zbdzjx 的热心帮助,膜拜中......
zbdzjx 2014-01-24
  • 打赏
  • 举报
回复
噢,上面那个写错了,用下面这个 sum(case when 直通良率< '+ edt6.Text+' then 1 else 0 end)
zbdzjx 2014-01-24
  • 打赏
  • 举报
回复
count(直通良率< '''+ edt6.Text+''') 这句改成 count(case when 直通良率< '+ edt6.Text+' then 1 else 0 end)
changfenglee 2014-01-24
  • 打赏
  • 举报
回复
下面的数据求一上查询语句,数据如下: 线别 批量 不良数 直通率 1线 1000  10   99 1线 2000  50   97.5 我想得到的结果如下:根据输入的目标值为98查询得到汇总数据 线别 总批量 未达成 1线  2    1 上面也是要实现此功能,但语句报错,不知各位是否有更好的办法.
changfenglee 2014-01-24
  • 打赏
  • 举报
回复
还是不行,是否count(直通良率< '+ edt6.Text+') as 未达成必须要用另外一种方式来实现啊. 如果是count(直通良率) as 未达成,这样就可以,增加一个逻辑就不行了.
beiguofengguang 2014-01-24
  • 打赏
  • 举报
回复
qry3.Close; qry3.SQL.Clear; qry3.SQL.Add('select 生产线别,count(工单批量) as 总批数,count(直通良率< '+ edt6.Text+') as 未达成 from 首次量产 where (生产日期 between '''+RzDateTimeEdit2.Text+''' and '''+ RzDateTimeEdit3.Text+''') group by 生产线别'); qry3.Open;
changfenglee 2014-01-24
  • 打赏
  • 举报
回复
错的位置在count(直通良率< '''+ edt6.Text+''') as 未达成
xiaojian365 2014-01-24
  • 打赏
  • 举报
回复
错在那?把你结果贴出来,

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧