2009-04-09 9 views
1
select distinct Franchise.FranchiseName, Franchise.Initials, Franchise.StoreNo, AccountCancellation_Process.Store_Num 
FROM FranchiseData 
INNER JOIN AccountCancellation_Process 
on FranchiseData.StoreNo = AccountCancellation_Process.Store_Num 

select count(*) from AccountCancellation_Process where Store_Num = '1234' 
select count(*) from AccountCancellation_Process where Store_Num = '1234' and Progress is not null 

Je veux combiner le nombre (*) de AccountCancellation_Process dans la déclaration jointure interne ci-dessus de sorte que la requête me donner le résultat de FranchiseName, Initiales, StoreNo de la table de la franchise et Store_Num du AccountCancellation_Process avec les dossiers au total et le total enregistrer avec la colonne Progression non nulle.Requête SQL: comment combiner le résultat de la fonction de comptage dans une requête de sélection?

comment combinez-vous le résultat de la requête avec le résultat de la fonction de comptage?

merci.

Répondre

1

Alias ​​le nombre (*) puis utilisez une somme (alias)

2

Comme cela, je pense est ce que vous voulez. J'ai créé deux sous-requêtes corrélées de valeur de table pour obtenir les données basées sur le nombre stocké dans la table de jointure interne. Ensuite, je les rejoins en fonction du numéro de magasin. De cette façon, le distinct va fonctionner. Mais vous pourriez également être en mesure de faire les comptes dans la partie sélectionnée en utilisant simplement des sous-requêtes corrélées. J'étais inquiet que le distinct pourrait ne pas fonctionner cependant.

SELECT DISTINCT Franchise.FranchiseName, Franchise.Initials, Franchise.StoreNo, acp.Store_Num, total_count.Total_Count, progress_count.Progress_Count 
FROM FranchiseData 
    INNER JOIN AccountCancellation_Process AS acp ON (FranchiseData.StoreNo = acp.Store_Num) 
    INNER JOIN (SELECT Store_Num, COUNT(*) AS Total_Count FROM AccountCancellation_Process WHERE Store_Num = acp.Store_Num) AS total_count ON (acp.Store_Num = total_count.Store_Num) 
    INNER JOIN (SELECT Store_Num, COUNT(*) AS Progress_Count FROM AccountCancellation_Process WHERE Store_Num = acp.Store_Num AND Progress IS NOT NULL) AS progress_count ON (acp.Store_Num = progress_count.Store_Num) 
Questions connexes