MISE À JOURInstruction SQL aide requise
Enfin réussi à travailler! Merci pour toute l'aide de tout le monde. Si vous remarquez des erreurs potentielles ou des possibilités d'amélioration dans ma requête, faites-le moi savoir.
SELECT *
FROM TBL_CAMPAIGNS C
INNER JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
INNER JOIN TBL_CAMPAIGNS_CHARITIES CC
ON C.campaign_Key = CC.camchar_CampaignID
INNER JOIN TBL_CHARITIES CH
ON CC.camchar_CharityID = CH.cha_Key
LEFT OUTER JOIN (
select recip_Chosen, count(recip_CampaignId) as ChosenCount
from TBL_CAMPAIGNRECIPIENTS
WHERE recip_CampaignId = @campaign
group by recip_Chosen
) CRC
on CH.cha_Key = CRC.recip_Chosen
WHERE C.campaign_Key = @campaign
Merci !!!
///////////////////
Après quelques conseils vraiment utiles, j'ai décidé de mettre en œuvre la suggestion « orbMan comme suit;
SELECT *
FROM TBL_CAMPAIGNS C
INNER JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
INNER JOIN TBL_CAMPAIGNS_CHARITIES CC
ON C.campaign_Key = CC.camchar_CampaignID
INNER JOIN TBL_CHARITIES CH
ON CC.camchar_CharityID = CH.cha_Key
WHERE C.campaign_Key = @campaign
Ceci renvoie une ligne pour chaque organisme associé à une campagne donnée (comme associé via TBL_Campaigns_Charities). Cependant, j'ai aussi une autre table (TBL_CAMPAIGNRECIPIENTS CR) qui détaille chaque personne invitée à participer à la campagne. En visitant la page de la campagne, ils peuvent sélectionner l'un des organismes de bienfaisance liés à la campagne.
Maintenant, j'ai besoin de savoir combien de personnes ont choisi chacune des organisations caritatives associées (CR.recip_Chosen). Leurs détails ne sont pas importants. J'ai juste besoin de savoir combien de personnes ont sélectionné chacune des organisations caritatives associées.
Donc quelque chose comme;
COUNT CH.cha_Key, FROM CR WHERE CR.recip_Chosen = CH.cha_Key
mais intégré dans l'instruction ci-dessus.
Merci d'avance.
ORIGINAL POST-DESSOUS:
///////////////////
Salut,
j'ai besoin pour obtenir des données de sur 3 tables . Les deux premiers sont simples et sont actuellement saisis comme;
SELECT * FROM TBL_CAMPAIGNS C
JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
WHERE C.campaign_Key = @campaign
La table 'TBL_CAMPAIGNS' contient plusieurs colonnes, dont cinq détiennent un int. Cet entier fait référence à la clé de la 3ème table 'TBL_CHARITIES'. Comment puis-je retourner les données de la troisième table en combinaison avec ce qui précède?
J'ai créé ce qui suit jusqu'à présent;
SELECT * FROM TBL_CAMPAIGNS C
JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
JOIN TBL_CHARITIES CH
ON CH.cha_Key = C.campaign_Char1
WHERE C.campaign_Key = @campaign
Mais, comme vous pouvez le constater, cela renvoie uniquement C.campaign_Char1. Qu'en est-il de C.campaign_Char2, C.campaign_Char3, C.campaign_Char4, C.campaign_Char5 ?????
J'ai essayé cela;
SELECT * FROM TBL_CAMPAIGNS C
JOIN TBL_MEMBERS M
ON C.campaign_MemberId = M.members_Id
JOIN TBL_CHARITIES CH
ON CH.cha_Key = C.campaign_Char1
AND CH.cha_Key = C.campaign_Char2
AND CH.cha_Key = C.campaign_Char3
.......
WHERE C.campaign_Key = @campaign
Mais, bien sûr, cela ne fonctionne pas!
Une suggestion/aide?
Merci d'avance.
Je préfère fixer le design sur le rapport aussi, votez pour cela. – Lazarus
Alors, TBL_CAMPAIGNS_CHARITIES contiendrait-il jusqu'à 5 lignes pour chaque campagne? – Munklefish
I.e. une ligne pour chacune des associations caritatives potentielles (par exemple C.campaign_Char1 .... etc comme dans l'exemple ci-dessus)? – Munklefish