Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/01/2008, 21h43   #1
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
Par défaut Compter sur 2 tables

Bonsoir à tous et avant tout, bonne année (il est encore temps)

Je pense que vous devriez pouvoir m'aider concernant un petit soucis que je rencontre.

J'ai donc un site en ASP et un base Access le tout sur IIS.
J'ai deux tables, la première est une liste de localisations (bureaux), la seconde est une liste d'utilisateurs:

Table_bureaux
-ID_bureau
-Ville
-Pays
- ... etc

Table_Utilisateurs
-ID_Utilisateur
-Bureau
- ...etc

Il y à donc une donnée commune dans chaque table, à savoir le bureau car chaque utilisateur est lié à un bureau.

Ce que je souhaite faire avec ASP c'est un extract excel de toutes les données et afficher un tableau (jusque là tout va bien) .... qui compte le nb d'utilisateurs par bureau, et c'est sur ce dernier point que je bloque... mon tableau devrait m'afficher le nb d'utilisateurs pour chaque bureau.

D'apres mes recherches sur le net et sur Developpez.com, il faudrait que j'utilise une jointure mais j'avoue que je ne m'y connais pas assez et malgres mes tentatives, je n'ai que des erreurs.

Pourriez vous m'indiquez la marche à suivre ?
Merci davance.

Cyrille
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 00h36   #2
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Salut,

Bienvenu sur le forum et bonne année.
Tu travailles sur Access c'est bien pour commencer.

Ceci dit tu devrais peut-être visiter le forum Access. Tu devrais trouver tout ce qui te faut pour faire des requetes.

Il faut différencier la base de données (Access, SQL, etc) du programme qui va te permettre de consulter tes données (IIS + ASP dans ton cas).
Créé tes requetes dans Access puis interroge les avec ASP.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 12h01   #3
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
Bonjour Immobilis et merci pour ton accueil.

Je vais aller visiter le forum access, tu as raison, si j'arrive à faire ma requete sous Access ce sera déjà un bon point, bien que je tourne en rond depuis hier je ne désespère pas

Je repasserai dans la journée si je ne m'en sort pas.

Encore merci et bonne journée
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 22h45   #4
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
Bonsoir,

Bon je tourne en rond.
J'ai regardé les examples et divers topics sur le forum access mais je n'arrive pas à faire fonctionner quoique ce soit.

En fait je suis rendu compte que je n'avais pas besoin de mes deux tables, la table utilisateurs contient déjà toutes les informations nécessaires à savoir la liste des utilisateurs et le bureau auquel ils sont rattachés, il faut donc faire un GROUP BY bureau ?

Désolé, autant je sais afficher les données d'une base, les classer .... , autant dès qu'il sagit d'opérations plus complexes je patauge

Un petit coup de pouce serait bienvenue.
Merci
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 13h46   #5
Expert Confirmé
 
Avatar de franculo_caoulene
 
Inscription : octobre 2003
Messages : 2 886
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 886
Points : 2 559
Points : 2 559
Désolé d'enfoncer le clou mais ça reste une question concernant le langage SQL. Il faut donc faire des recherches, poser la question dans le forum adéquat.

Le forum est avant tout une base de connaissance, si tu poses ta question au bon endroit et qu'on t'y répond, les recherches ultérieures n'en seront que plus efficaces.
__________________
Penser à la recherche et au bouton
franculo_caoulene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 15h04   #6
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
OK je vais continuer mes recherches dans le/les forum(s) adéquat.

Bonne journée et merci quand même pour votre temps.
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 19h54   #7
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
Bonsoir tout le monde,

Je ressort mon topic de sa tombe en espérant un petit conseil.

J'ai fait le tour de mal de topics et voila ce que j'ai ressorti:

Code :
1
2
3
4
5
6
<%	sqlstations="SELECT COUNT (*) AS nb FROM Users U, Stations S WHERE U.Station = S.Station"
	set rs = conn.execute(sqlstations)
	if not rs.EOF then
	response.write rs("nb" )
	end if
%>
Cependant le résultat me retourne le nombre total d'utilisateurs et non celui par bureau (station).
Quelqu'un aurait un conseil à me donner ?
Merci d'avance
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 20h13   #8
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Salut,

Il faut utiliser les groupement et les sommes ainsi:
Code :
1
2
3
SELECT Sum(Users.id_user) AS SumOfid_user, Bureau.Nom_Bureau
FROM Bureau INNER JOIN Users ON Bureau.id_bureau = Users.id_bureau
GROUP BY Bureau.Nom_Bureau;
Par contre, tant que c'est encore possible, je te suggère d'utiliser toujours le même nom pour les identifiant référents (bueaux.id_bureau <=> users.bureau). Cela permet de savoir à quoi correspond l'info.
De plus, Access reconnait les identifiants automatiquement et les relie dans le générateur de requetes.

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 20h48   #9
Modérateur
 
Avatar de kaiser59
 
Inscription : novembre 2005
Messages : 1 248
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : novembre 2005
Messages : 1 248
Points : 1 205
Points : 1 205
Envoyer un message via MSN à kaiser59
Salut,

Citation:
Envoyé par Elyric Voir le message
En fait je suis rendu compte que je n'avais pas besoin de mes deux tables, la table utilisateurs contient déjà toutes les informations nécessaires ...
Quelque chose me trouble tu dis que tu as tout sur une table est pourtant tu essaies de joindre deux tables j'ai un peu de mal à comprendre la.

Ta réponse serait ceci :
Code sql :
1
2
SELECT Count(DISTINCT(Bureau))
FROM USERS

nan ??
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours

FAQ ASP
kaiser59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2008, 23h07   #10
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
Bonsoir Immobilis & Kaiser59,

Kaiser, en fait j'ai essayé des 2 façons, désolé si je n'ai été clair dans mes explication.
J'ai réussi à faire ma requete sous Access comme tu me l'a suggéré Immobilis, la voici :
Code :
1
2
3
SELECT stations.Station, Count(Users.NT_EADS) AS CompteDeNT_EADS
FROM Users INNER JOIN stations ON Users.STATION = stations.Station
GROUP BY stations.Station;
Elle fonctionne parfaitement (ok je sais je suis pas clair avec les noms de mes tables et des champs, j'arrangerai tout ça c'est promis).

Par contre je n'arrives pas à obtenir le même résultat avec ASP, mon tableau de m'affiche des "4" à chaque ligne. 4 étant le résultat de la première ligne...

Code :
1
2
3
4
<%	sqlstations="SELECT stations.ID_Station, Count(Users.NT_EADS) AS CompteDeNT_EADS FROM Users INNER JOIN stations ON Users.STATION = stations.ID_Station GROUP BY stations.ID_Station"
	set nbrs = conn.execute(sqlstations)
	response.write nbrs("CompteDeNT_EADS")
%>


En tous cas, Merci ! je progresse, a mon rythme certes mais ... je progresse
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 00h08   #11
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 857
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 857
Points : 5 975
Points : 5 975
Salut,

Eventuellement, il faudrait que tu te procures un bouquin sur l'ASP. Je m'en suis acheté un au début.
Pour répondre à ta question, il faut que tu parcours la liste des enregistrements que tu récupères. Tu peux le faire en faisant:
Code :
1
2
3
4
5
6
7
8
sqlstations="SELECT stations.ID_Station, Count(Users.NT_EADS) AS CompteDeNT_EADS FROM Users INNER JOIN stations ON Users.STATION = stations.ID_Station GROUP BY stations.ID_Station"
set nbrs = conn.execute(sqlstations)
if not nbrs.EOF then
    do while not nbrs.EOF
         response.write nbrs("CompteDeNT_EADS") & "<br />"
         nbrs.movenext
    loop
end if
Tu peux jeter un oeil ici:
http://www.w3schools.com/ado/ado_ref_recordset.asp
http://www.devguru.com/technologies/ado/8642.asp

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 11h58   #12
Invité de passage
 
Inscription : juin 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 10
Points : 2
Points : 2
Bonjour Immobilis,

Effectivement un livre serait nécessaire, mais dans l'immédiat j'aimerai en finir avec ça !
Merci pour le code en fait c'est ce que j'ai réussi à faire apres avoir posté mon dernier message et ça marche très bien.
Le hic c'est que je parcours déjà une liste d'enregistrements et je me retrouve donc avec tout le comptage des utilisateurs affiché pour chaque bureau ... mais c'est pas grave je vais partir sur cette nouvelle base

Merci à tous pour vos conseils, bonne journée et à bientot
Elyric est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h51.


 
 
 
 
Partenaires

Hébergement Web