我需要测试两个条件:
有多少 mysku 没有改写为“REP”,但在列 [mysku_catagory] 的表 2 中有相同的类别可用
条件:mysku 列中存在多少个 COMPETETOR_SKU 不包含存在于 COMPETETOR_SKU_CATAGORY 中的 CATAGORY 表 2.
示例数据:
DECLARE @table1 TABLE
(
MYSKU VARCHAR (20),
CATAGORY VARCHAR (20),
OVERTYPE VARCHAR (20),
COMPETETOR_SKU VARCHAR (20)
)
Insert @table1
SELECT 'AAA19-1405', 'Cold Air Intake', 'REP', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-1505', 'Cold Air Intake', 'REC', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-1508', 'Cold Air Intake', 'REP', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-2303', 'Cold Air Intake', 'REP', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-2305', 'Cold Air Intake', 'REC', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-2308', 'Cold Air Intake', 'REC', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-2405', 'Cold Air Intake', 'REC', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-4003', 'Cold Air Intake', 'REC', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-4005', 'Cold Air Intake', 'REP', 'MCN8LTC8K' UNION ALL
SELECT 'AAA19-4103', 'Cold Air Intake', 'REC', 'MCN8LTC8K' UNION ALL
SELECT 'MCN8LTC8K', 'Air Filter Wrap', 'REP', 'MCN8AWCC3' UNION ALL
SELECT 'MCN8LTC8K', 'Air Filter Wrap', 'REP', 'MCN8AWCC3' UNION ALL
SELECT 'MCN8LTC8K', 'Catchmehere' , 'REP', 'KZNWRTY65' UNION ALL
SELECT 'MCN8LTC8K', 'I M HERE TOO' , 'REP', 'SDREWTY345'
declare @table2 table
(
mysku_catagory VARCHAR (50),
COMPETETOR_SKU_CATAGORY VARCHAR (50)
)
INSERT @table2
SELECT 'Cold Air Intake', 'Air Filter%'
预期输出:
--'AAA19-1505', 'Cold Air Intake', 'REC', 'MCN8LTC8K'
--'AAA19-2305', 'Cold Air Intake', 'REC', 'MCN8LTC8K'
--'AAA19-2308', 'Cold Air Intake', 'REC', 'MCN8LTC8K'
--'AAA19-2405', 'Cold Air Intake', 'REC', 'MCN8LTC8K'
--'AAA19-4003', 'Cold Air Intake', 'REC', 'MCN8LTC8K'
--'AAA19-4103', 'Cold Air Intake', 'REC', 'MCN8LTC8K'
--'MCN8LTC8K', 'Catchmehere' , 'REP', 'KZNWRTY65'
--'MCN8LTC8K', 'I M HERE TOO' , 'REP', 'SDREWTY345'
最佳答案
像这样尝试:
SELECT *
FROM @table1 AS t1
WHERE ( t1.OVERTYPE <> 'REP'
AND EXISTS(SELECT *
FROM @table2 AS t2
WHERE t2.mysku_catagory = t1.CATAGORY) )
OR ( NOT EXISTS(SELECT *
FROM @table2 AS t2
WHERE t1.CATAGORY LIKE t2.COMPETETOR_SKU_CATAGORY)
AND ( t1.OVERTYPE = 'REP'
AND NOT EXISTS(SELECT *
FROM @table2 AS t2
WHERE t2.mysku_catagory = t1.CATAGORY) ) )
关于sql - 复杂分组和结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34314737/