|
select sum(iif((isnull(本月数)or(本月数=0)or([小 区]="小计")),0,1)) as 本月数合计个数,sum(iif((isnull(实收数)or(实收数=0)or([小 区]="小计")),0,1)) as 实收数合计个数 from [sheet1$]
注意:多条件与关系不能用函数加实现,在excel函数用法中是可以用“+”来处理。但SQL中如果用“+”号就出错,在下面的语句中SQL中“+”默认为连接字符,只有在所有被加项都为数值时才作加号处理,数值和字符混用会出错。下面结果错误。
select sum(iif((isnull(本月数)+(本月数=0)+([小 区]="小计")),0,1)) as 本月数合计个数,sum(iif((isnull(实收数)+(实收数=0)+([小 区]="小计")),0,1)) as 实收数合计个数 from [sheet1$]
select count(*) as 采购单数量 from(select distinct 物料编码 from [Sheet1$a:b] where 物料编码 like "G%" and 采购单号<>null)
having 的用法:
这里是用不到的,用这个例子来现在求个人当月平均产量大于总的当月平均产量人员的
姓名 单日最高产量 当月平均产量 当月产量总数
select 姓名,max(每日产量) as 单日最高产量,AVG(每日产量) as 当月平均产量,SUM(每日产量) as 当月产量总数 from [sheet1$] group by 姓名
结果如下:
姓名 单日最高产量 当月平均产量 当月产量总数
张三 58 50.42857143 353
陈一 53 48.16666667 289
李四 53 48.4 242
总的当月平均产量
select avg(每日产量) from [sheet1$]
结果如下:
当月平均产量
49.11111111
当月平均产量大于总的当月平均产量49.11111111的语句如下:
select 姓名,max(每日产量) as 单日最高产量,AVG(每日产量) as 当月平均产量,SUM(每日产量) as 当月产量总数 from [sheet1$] group by 姓名 having AVG(每日产量)>(select avg(每日产量) from [sheet1$])
结果如下:
姓名 单日最高产量 当月平均产量 当月产量总数
张三 58 50.42857143 353
求当月产量总数不到300的语句:
select 姓名,max(每日产量) as 单日最高产量,AVG(每日产量) as 当月平均产量,sum(每日产量) as 当月产量总数 from [sheet1$] group by 姓名 having sum(每日产量)<300
结果如下:
姓名 单日最高产量 当月平均产量 当月产量总数
陈一 53 48.16666667 289
李四 53 48.4 242 |
|