Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
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 24/11/2010, 16h37   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Envoyer un message via MSN à pikaTuX
Par défaut Fonction appartient en sql

Bonjour,

J'ai une base de données qui contient 2 tables, une table 'articles' avec comme champs id, description ....
et une table 'logs' avec champs : id, date, choix_article.

Je voudrais afficher le nombre de fois qu'un article est affiché, pendant une journée. Ma requete pour le moment ressemble a ceci :

Code :
1
2
3
4
5
6
SELECT article.ID AS article_id, 
   EXTRACT(MONTH FROM logs.date ) AS MOIS, 
   EXTRACT(DAY FROM logs.date ) AS JOUR
FROM article, logs
WHERE logs.choix_article LIKE %100% 
  AND article.id=100;
mais, je peux faire que pour une idée donnée. Ce que je veux, c'est que ma requete parcours toutes les id, une par une.
Quelqu'un peut m'aider ?

Merci d'avance
pikaTuX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 17h07   #2
Membre Expert
 
Homme
Responsable de service informatique
Inscription : janvier 2009
Messages : 1 075
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : janvier 2009
Messages : 1 075
Points : 1 863
Points : 1 863
Bonjour,
Il n'y a pas de jointure dans ta requête entre article et logs, est-ce normal ?
De plus, tu mets une condition sur l'Id de l'article, donc il est normal que la requête ne renvoie qu'un article.
Donc tu dois:
1. faire une jointure entre article et logs
2. compter le nombre de ligne (voir count(*), group by...)
3. ne pas poser de critère sur l'article

Tatayo.
tatayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 17h16   #3
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 956
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 956
Points : 18 161
Points : 18 161
Envoyer un message via MSN à CinePhil
Je crois comprendre que la condition de jointure serait : article.ID = logs.choix_article ?
Alors avec la syntaxe normalisée depuis 1992 pour les jointures, et en suivant le principe de tatayo, ça donnerait ceci :

Code :
1
2
3
4
5
6
SELECT article.ID AS article_id, 
    logs.`date` AS jour,
    COUNT(*) AS nombre
FROM article
INNER JOIN logs ON article.ID = logs.choix_article
GROUP BY article.ID, logs.`date`
Tu remarqueras au passage que j'ai mis des ` autour de la colonne date parce que c'est mot du langage SQL et ne devrait donc pas être utilisé comme nom de colonne.
J'ai aussi supprimé tes extractions de jour et de mois parce que au bout d'un an, tu vas cumuler les comptages pour le même jour !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 11h39   #4
Invité de passage
 
Inscription : novembre 2007
Messages : 26
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 26
Points : 3
Points : 3
Envoyer un message via MSN à pikaTuX
Merci beaucoup pour la réponse,
désolé mes requêtes sql sont mal écrites.

A bientôt
pikaTuX 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 16h44.


 
 
 
 
Partenaires

Hébergement Web