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/03/2011, 09h29   #1
Membre éclairé
 
Avatar de juvamine
 
Développeur informatique
Inscription : mai 2004
Messages : 394
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 394
Points : 377
Points : 377
Par défaut Les 7 jours, et uniquement ceux là

Bonjour
J'ai une table dont la structure est la suivante:
Table1(code_type_action int,
num_jour int,
heure time(0)
)

J'aurais donc des lignes:
code_type_action | num_jour | heure
1 | 1 | 10:00
1 | 2 | 10:00
1 | 3 | 10:00
1 | 4 | 10:00
1 | 5 | 10:00
1 | 6 | 10:00
1 | 7 | 10:00
2 | 1 | 21:00

Je voudrais être sûr, que pour pour un code_type_action, et une heure, j'ai les 7 jours (1,2,3,4,5,6,7) et uniquement ceux là.
J'ai fais des choses genre
Code :
1
2
3
SELECT code_type_action, heure, count(*)
FROM Table1
GROUP BY code_type_action, heure
et si mon count(*)=7 c'est que c'est pas mal...mais je ne suis pas sur que j'ai mes 7 jours, et uniquement ceux là.
A part avec un curseur et un traitement algorithmique, je ne vois pas comment m'en sortir.
J'ai regarder du côté de ANY, ou des opérateurs du genre, mais je ne m'en sors pas.

J'espère avoir été suffisamment clair
Merci d'avance de votre aide !
__________________
http://chat.developpez.com/ -- Salon Base de Données --
juvamine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 09h39   #2
Membre Expert
 
Avatar de Nudger
 
Homme Thomas Arnaud
Directeur de projet
Inscription : octobre 2010
Messages : 452
Détails du profil
Informations personnelles :
Nom : Homme Thomas Arnaud
Âge : 36
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Directeur de projet
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : octobre 2010
Messages : 452
Points : 1 012
Points : 1 012
Envoyer un message via Skype™ à Nudger
Bonjour,

Il est possible d'utiliser les clauses MIN et MAX pour garantir la fenêtre [1;7].
Et pour qu'il n'y ait pas de redondance, il est possible de comparer COUNT(*) avec COUNT(DISTINCT code_type_action, heure).
__________________
www.nudge.org Surveillez et optimisez vos applications Java
Nudger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 10h04   #3
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Je pense que le mieux c'est d'enforcer la contrainte.
Une contrainte d'unicité sur (code_type_action,num_jour,heure) et une contrainte check sur num_jour between 1 and 7.
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 10h42   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 446
Points : 10 446
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
En considérant la seconde contrainte proposée par skuatamad, il suffit alors de compter les valeurs distinctes de num_jour :
Code :
1
2
3
4
5
  SELECT code_type_action, heure
    FROM Table1
GROUP BY code_type_action, heure
  HAVING count(DISTINCT num_jour) = 7
-- ou <> 7 si vous voulez ceux qui ne respectent pas votre règle
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h22   #5
Membre éclairé
 
Avatar de juvamine
 
Développeur informatique
Inscription : mai 2004
Messages : 394
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 394
Points : 377
Points : 377
Je vais voir ce que je peux faire avec tout ça...
Merci de vos réponses je vous tiens informé !
__________________
http://chat.developpez.com/ -- Salon Base de Données --
juvamine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 14h42   #6
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
C'est un cas de division relationnelle stricte.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web