0
votes

Complexe SQL Query dans Rejoindre

tables xxx

intention: Trouvez ce nombre de comptes de fournisseurs sage où aucun paiement ( no_trans_cnt ) a été reçu xxx

veux demander: maintenant , Je veux aussi ajouter la colonne total_suppliers dans cette zone xxx

Je pense qu'il peut être atteint en utilisant des jointures, mais je ne suis pas capable d'obtenir Comment?


1 commentaires

Quick and Dirty: Utilisez votre requête existante en tant que sous-requête, laissez-la rejoindre à votre table.


3 Réponses :


0
votes

quelque chose comme xxx

pourrait fonctionner. Notez que le nombre (paiment) ne compte que ceux où le paiement n'est pas null.


0 commentaires

0
votes

Utilisez un rejoindre , mais commencez par Fournisseurs : xxx

the rejoindre garde tout Dans la table premier - qui est ce que vous voulez, ainsi que des lignes correspondantes de la seconde.

Lorsque vous comptez le nombre de transactions, l'argument à Compte ( ) doit soit une colonne utilisée dans la clause sur ou la clé primaire.


0 commentaires

1
votes

Essayez ceci:

SELECT 
  M.AREA
, COUNT(1) TOTAL_SUPPLIERS
, COUNT(CASE WHEN T.SUPP_ID IS NULL THEN 1 END) NO_TRANS_CNT
FROM MASTER_SUPPLIERS M
LEFT JOIN TRANSACTIONS T ON T.SUPP_ID = M.SUPP_ID
GROUP BY M.AREA;


0 commentaires