J'ai l'exemple de select groupé:
SELECT cod, value, type FROM table GROUP BY cod, value, type
Je reçois des résultats:
cod | value | type 1 | 1000 | A 1 | 570 | B 2 | 2000 | A 3 | 1500 | A 3 | 200 | B
Mais pour seulement cod = 1
devrait renvoyer la valeur de type = A
Résultat désiré:
cod | value | type 1 | 1000 | A 2 | 2000 | A 3 | 1500 | A 3 | 200 | B
Je pense que la déclaration CASE
dans WHERE
mais ont des limites et ne fonctionne pas correctement. Comment je peux le faire?
WHERE CASE WHEN cod = 1 THEN type = 'A' END
WHERE Type = CASE WHEN cod = 1 THEN 'A' else Type END
Vous voilà:
SELECT cod, value, type FROM table WHERE cod != 1 OR type='A' GROUP BY cod, value, type
Une autre bonne option – Pas le meilleur moyen ici mais une option utile.
SELECT cod, value, type FROM table GROUP BY cod, value, type EXCEPT SELECT cod, value, type FROM table WHERE cod = 1 AND type <> 'A' GROUP BY cod, value, type