Je suis en train de faire un calcul assez compliqué SELECT
que je généralise:colonne calculée à partir de deux colonnes Calculée
- requête principale est un caractère générique pour sélectionner une table
- Un sous-requête fait un
COUNT()
de tous les éléments basés sur une condition (cela fonctionne bien) - Une autre sous-requête fait un
SUM()
de nombres dans une colonne basée sur une autre condition. Cela fonctionne également correctement, sauf si aucun enregistrement ne remplit les conditions, il renvoieNULL
.
Je voulais d'abord ajouter les deux sous-requêtes, quelque chose comme (subquery1)+(subquery2) AS total
qui fonctionne très bien, sauf subquery2 est nul, auquel cas total
devient nulle, peu importe ce qui est le résultat de subquery1. Ma deuxième pensée était d'essayer de créer une troisième colonne qui devait être un calcul des deux sous-requêtes (ie, (subquery1) AS count1, (subquery2) AS count2, count1+count2 AS total
) mais je ne pense pas qu'il soit possible de calculer deux colonnes calculées, et même si c'était, je me sens comme le le même problème s'applique.
Est-ce que quelqu'un a une solution élégante à ce problème en dehors de simplement obtenir les deux valeurs de sous-requête et en les totalisant dans mon programme?
Merci!
Pouvez-vous fournir des détails? Comme un exemple de requête que vous avez créé. –
Rappelez-vous aussi le COALESCE (SUM (CASE WHEN condition THEN 1 ELSE 0 END), 0) astuce pour compter conditionnellement éléments: vous pourriez être en mesure de combiner à deux sous-requêtes en un seul, ou les rouler dans la requête principale. – araqnid