Plusieurs JOINTURE INTERNE avec GROUP BY et d'une Fonction d'Agrégation

Je suis de retour avec une autre question. J'ai été bricoler avec ce pour 1 jours et demi maintenant, et toujours pas de chance. Donc, j'ai les tableaux ci-dessous.

Table1
Field1 Field2 Field3 Field4     Field5
DR1    500    ID1    Active     TR1
DR2    250    ID2    Active     TR1
DR3    100    ID1    Active     TR1
DR4    50     ID3    Active     TR1
DR5    50     ID1    Cancelled  TR1
DR6    150    ID1    Active     TR2

Table2
Field1 Field3
ID1    Chris
ID2    John
ID3    Jane

Table3
Field1 Field2
TR1    Shipped  
TR2    Pending

Je peut actuellement atteindre ce résultat.

Name   Total
Chris  650    3
John   250    1
Jane   50     1

à l'aide de cette instruction sql

SELECT t2.Field3 as Name , SUM(t1.Field2) as Total
 FROM [Table1] t1 INNER JOIN [Table2] t2 ON t1.Field3 = t2.Field1
  GROUP BY t2.Field3

Cependant, j'aimerais arriver à ce résultat indiqué ci-dessous.

Chris 600 2
John  250 1
Jane  50  1

Je tiens à le consulter Tableau3 d'abord si elle a un "Expédiée" Field2 puis il comprend tout dans Table1 avec "Active" Field4. Il ne devrait pas inclure "Annulé" Field4. Et si Tableau3 a un Champ2 de l'Attente, il convient également de ne pas l'inclure. J'apprécierais toute peu d'aide. Merci.

  • Vous manquez quelque chose d'informations. Qu'est-ce que "le 3-1-1" ? Dans votre vous sélectionnez la requête à seulement 2 champs (nom et somme). Qu'est-ce que 650? par chris: 500+100+50+150 = 800
  • Vous pouvez simplement ajouter ces conditions à votre demande: OÙ Table1.Field5 = 'TR1' ET de Table1.Field4 = "Active", bien sûr, avant d'instruction GROUP BY
  • Oh désolé, le 3-1-1 est COUNT(*). @BaBL86
  • oui, c'est la façon de le faire, cependant je ne peux pas faire une condition, à moins que je me connecter Tableau3 à Table1 d'abord en faisant une JOINTURE INTERNE, et maintenant il est déjà à l'aide de 1 INNER JOIN pour Table2. Je ne sais pas où mettre le 2ème JOINTURE INTERNE pour Tableau3