sql 动态查询--查询条件为空时----该条件不作为查询条件

该SQL查询用于统计特定部门(根据${bm}

```sql
SELECT
	account_name AS ryxm,
	machine_name AS '设备号',
	dept_name AS '部门',
	account_id AS '账号',
	user_type AS '身份类型',
	sum( CASE time_name WHEN '早餐' THEN cs ELSE 0 END ) '早餐_次数',
	sum( CASE time_name WHEN '早餐' THEN je ELSE 0 END ) '早餐_金额',
	sum( CASE time_name WHEN '午餐' THEN cs ELSE 0 END ) '午餐_次数',
	sum( CASE time_name WHEN '午餐' THEN je ELSE 0 END ) '午餐_金额',
	sum( CASE time_name WHEN '加班餐' THEN cs ELSE 0 END ) '加班餐_次数',
	sum( CASE time_name WHEN '加班餐' THEN je ELSE 0 END ) '加班餐_金额' 
FROM
	(
	SELECT
		account_name,
		machine_name,
		time_name,
		dept_name,
		account_id,
		user_type,
		count( * ) AS cs,
		sum( price ) AS je 
	FROM
		(
		SELECT
			* 
		FROM
			(
			SELECT
				a.account_name,
				a.time_name,
				b.machine_name,
				price,
				dept_name,
				account_id,
				user_type,
				a.create_time 
			FROM
				ykt_order a
				LEFT JOIN ykt_machine b ON a.machine_no = b.machine_no 
			WHERE
				a.type = '2' 
and (dept_name='${bm}' OR '${bm}'IS NULL OR  '${bm}'='') 
and (user_type='${sflx}' OR '${sflx}'IS NULL OR  '${sflx}'='') 

			) c 
		WHERE
			time_name IS NOT NULL 
AND create_time >= '${sj_bg}' 
	AND create_time <= '${sj_ed}' 
		) z 
	GROUP BY
		account_name,
		machine_name,
		time_name 
	) zz 
GROUP BY
	account_name,
	machine_name

在这里插入在这里插入图片描述
图片描述



SELECT * FROM table
where 1 = 1
and ((@A IS NULL) or (A=@A) or @A = '')
and ((@B IS NULL) or (B=@B) or @B= '')
END

@A是传入的参数


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值