SQL查询添加条件WHERE子句:根据特定字段值追加过滤条件
没问题,我来帮你实现这个条件化的WHERE子句需求~
解决方法:添加针对性过滤条件
要达成你想要的逻辑——仅当UTLI.gfc_linetransactiontypeidname = 'SF'时,追加UTLI.gfc_accountid='fooGuid'的过滤规则——我们可以通过逻辑组合来构建WHERE子句,确保非'SF'类型的记录不受额外限制,而'SF'类型的记录必须满足账号ID的要求。
修改后的完整SQL语句
t2 AS ( SELECT SUM(UTLI.gfc_numberofunits) AS SubUnits, UTLI.gfc_zoneidname AS SubZone, UTLI.gfc_seasonidname AS SubSeason, UTLI.gfc_linetransactiontypeidname AS SubType, COUNT(UT.gfc_trans_id) as SubCount FROM Filteredgfc_UnitTransactionsLineItems AS UTLI INNER JOIN Filteredgfc_unittransactions AS UT ON UT.gfc_trans_id = UTLI.gfc_unittransactionsid -- 补全你原语句中截断的关联字段,若实际字段不同可替换 WHERE -- 核心逻辑:要么不是SF类型,要么是SF且账号ID匹配 UTLI.gfc_linetransactiontypeidname != 'SF' OR (UTLI.gfc_linetransactiontypeidname = 'SF' AND UTLI.gfc_accountid='fooGuid') GROUP BY UTLI.gfc_zoneidname, UTLI.gfc_seasonidname, UTLI.gfc_linetransactiontypeidname )
逻辑说明
- 当
UTLI.gfc_linetransactiontypeidname不等于'SF'时,只需满足表关联条件即可被纳入统计; - 当
UTLI.gfc_linetransactiontypeidname等于'SF'时,必须同时满足UTLI.gfc_accountid='fooGuid'才会被选中。
内容的提问来源于stack exchange,提问作者JReno
相关产品推荐
相关产品推荐

