Bonjour est ce que vous pouvez m'aider à optimiser cette requette :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
SELECT t1a.MSISDN, t2.*
FROM test2 AS t2
INNER JOIN test1 AS t1a ON t1a.PRODUCT = t2.PRODUCT1 and t1a.PRODUCT like '%U'
INNER JOIN test1 AS t1b ON t1b.PRODUCT = t2.PRODUCT2 and t1b.PRODUCT like '%R'
and t1a.MSISDN = t1b.MSISDN
UNION
select DISTINCT a.MSISDN , b.* from test2 AS b
INNER JOIN test1 AS t1a ON t1a.PRODUCT = b.PRODUCT1 and t1a.PRODUCT like '%U'
INNER JOIN test1 AS a ON b.PRODUCT2 =
CASE WHEN NOT EXISTS
(SELECT t1aa.MSISDN, t22.*
FROM test2 AS t22
INNER JOIN test1 AS t1aa ON t1aa.PRODUCT = t22.PRODUCT1 and t1aa.PRODUCT like '%U'
INNER JOIN test1 AS t1bb ON t1bb.PRODUCT = t22.PRODUCT2 and t1bb.PRODUCT like '%R'
and t1aa.MSISDN = t1bb.MSISDN and t1aa.MSISDN = t1a.MSISDN)
THEN '*' END and t1a.MSISDN = a.MSISDN |
la requette que j'ai fais est sous forme
requeteA UNION requeteB CASE NOT EXISTS requeteA
je refais la requeteA deux fois , en fait la requeteB n'est fait que si la requete A ne retourne rien pour les meme MSISDN
Partager