--mssqlserver:selecta.日期,a.物料,a.工序,a.设备,a.班组,a.操作工,a.数量,a.单价,(casewhenb.物料种类数>1orb.物料种类数=1andc.设备种类数>1andd.工序种类数=1then0.8else1end)as折扣,a.数量*a.单价*(casewhenb.物料种类数>1orb.物料种类数=1andd.工序种类数=1andc.设备种类数>1then0.8else1end)as工资from表名aleftjoin(select日期,count(物料)as物料种类数,操作工from表名groupby日期,操作工)bona.日期=b.日期anda.操作工=b.操作工leftjoin(select日期,count(设备)as设备种类数,操作工from表名groupby日期,操作工)cona.日期=c.日期anda.操作工=c.操作工leftjoin(select日期,count(工序)as工序种类数,操作工from表名groupby日期,操作工)dona.日期=d.日期anda.操作工=d.操作工
追问你好,如果我需要*条件呢,比如说我想加 where 日期=‘2017-01-01’我需要加在哪里呢?是在from 表名 a 跟left join 之间么,还是加在最后
追答......wherea.日期='2017-01-01'--加在最后
select 数量,单价,折扣,数量*单价*折扣 as '工资' from table
能看懂么
其他的东西,你没有表结构,没有人能帮你写出来
追问主要问题不是工作,而是折扣。折扣是要判断出来到底是1还是0.8,也就是要不要打折,能看懂么