4.解决多表连接中(左连和等值)因添加新的报表导致查询结果有问题的方法

需求及解决办法如下:

SELECT
		a.id AS id,
		c.sdate AS sdate,
		a. NAME AS NAME,
		ifnull(sum(c.xzuser),0) AS totalxz,
		ifnull(sum(c.tcount),0) AS totaljs,
		ifnull(sum(c.jsuser),0) AS
		totaluseable,
		ifnull(sum(c.duliuser),0) AS totaldl,
		ifnull(sum(c.imeiuser),0) AS totalimei,
		ifnull(sum(c.noimsiuser),0) AS totalnoimsi
		FROM
		tb_customercorp a
		INNER JOIN
		tb_customerapp
		b ON a.id = b.channelid
		INNER JOIN(
		SELECT
		usc.channelid AS
		appid,
		usc.sdate AS sdate,
		v_uj.tcount AS tcount,
		tuc.usercount AS jsuser,
		tuic.usercount AS duliuser,
		usc.usercount AS xzuser,
		(select uic.usercount from tb_userstat_imei_channelid as uic where uic.channelid = usc.channelid and uic.sdate = usc.sdate) as imeiuser,
		(select uiic.usercount from tb_userstat_imeiimsi_channelid as uiic where uiic.channelid = usc.channelid and uiic.sdate = usc.sdate) as noimsiuser
		FROM
		tb_userstat_channelid
		AS usc
		LEFT JOIN
		tb_userjs_channelid
		as tuc
		ON usc.channelid = tuc.channelid
		AND
		usc.sdate = tuc.sdate
		LEFT JOIN 
		tb_userimsi_channelid
		as tuic
		ON tuc.sdate = tuic.sdate
		AND
		tuc.channelid = tuic.channelid
		left join 
		(
		SELECT
		`uj`.`appid` AS `appid`,
		`uj`.`sdate` AS
		`sdate`,
		sum(`uj`.`usercount`)AS `tcount`
		FROM
		`tb_userlog_jsok` `uj`
		WHERE
		uj.grade > 0
		GROUP BY
		`uj`.`appid`,
		`uj`.`sdate`
		having
		uj.sdate BETWEEN '20160101' and '20160103'
					
	
		)AS v_uj on v_uj.appid = tuc.channelid and v_uj.sdate = tuc.sdate 
		where
					usc.sdate BETWEEN '20160101' and '20160103'
			
		)c ON
		b.id = c.appid
		
		GROUP BY a.id,c.sdate
		ORDER BY c.sdate DESC



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值