我想做查询。我使用微软 SQL。
- 如果产品等于 FAST...
- 而tree_level等于0,1,2,3,4,5,则数出0,1,2,3,4,5的个数。例如,如果有 30 个项目包含“0,1,2,3,4,5”。然后乘以 30*2。
- 和 tree_level 等于 -1,然后计算 -1 的数量并乘以 2
- 如果 product 等于 MOBIL 并且 tree_level 等于 0,1,2,3,4,5 计数并乘以 3
- 如果产品等于 FACE...
- 而tree_level等于0,1,2,3,4,5,然后数出0,1,2,3,4,5的个数再乘以3
- 和 tree_level 等于 -1,然后计算 -1 的数量并乘以 2
我如何一起使用 where、case 和 counter 语句?我不能这样做。
select
DS.PersTel ,
DW.AD ,
DW.SOYAD ,
DS.RefPhoner ,
DS.Product ,
DS.Tree_level
WHERE DS.Product like '%FACE%' (
CASE
WHEN DS.Tree_level IN (0,1,2,3,4,5) THEN count(DS.Tree_level) * 3
WHEN DS.Tree_level IN (-1) THEN count(DS.Tree_level) * 2
END
WHERE DS.Product like '%MOBIL%' (
CASE DS.Tree_level
WHEN DS.Tree_level IN (0,1,2,3,4,5) THEN count(DS.Tree_level) * 3
END )
WHERE DS.Product like '%FAST%' (
CASE DS.Tree_level
WHEN DS.Tree_level IN (0,1,2,3,4,5) THEN count(DS.Tree_level) * 2
WHEN DS.Tree_level IN (-1) THEN count(DS.Tree_level) * 2
END )
from dw_prod.FRTN.DIG_SEFER AS DS
inner join dw_prod.dbo.DW_MUST AS DW
ON DW.CEP_TEL = DS.PersTel
更新案例部分
select
DS.PersTel ,
DW.AD ,
DW.SOYAD ,
DS.RefPhoner ,
DS.Product ,
DS.Tree_level
CASE
WHEN DS.Tree_level IN (0,1,2,3,4,5)AND DS.Product LIKE '%FACE%' THEN count(DS.Tree_level) * 3
WHEN DS.Tree_level IN (-1) THEN count(DS.Tree_level) * 2
END AS Answer1
CASE DS.Tree_level
WHEN DS.Tree_level IN (0,1,2,3,4,5) AND DS.Product LIKE '%MOBIL%' THEN count(DS.Tree_level) * 3
END AS Answer2
CASE DS.Tree_level
WHEN DS.Tree_level IN (0,1,2,3,4,5) AND DS.Product LIKE '%FAST%' THEN count(DS.Tree_level) * 2
WHEN DS.Tree_level IN (-1) THEN count(DS.Tree_level) * 2
END AS Answer3
from d.FR AS Ds
inner join d.dbo.DW AS Dw
ON DW.CEP_TEL = DS.PersTel