IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[SQL Server] La bourse est-elle ouverte ou fermée ?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut [SQL Server] La bourse est-elle ouverte ou fermée ?
    Hello,

    j'ai besoin de faire une requète SQL qui me liste les bourses et leur status "ouverte" ou "fermée".
    Il y a 3 cas possibles
    1er cas, on est en dehors des heures ouvrables (paris c'est 08:00 - 16:30 utc et New-York c'est 14:30 - 21:00 utc)
    2ème cas on est en week-end les bourses sont fermées
    3ème cas la bourse est fermé pour une fête (à noel les 2 sont fermées et new york et fermé pour thanksgiving mais pas paris)

    Mon problème, c'est comment j'enchaine chacun de ces test, sachant le status "fermée" sur un des cas entraine un status "fermée" quoiqu'il arrive...

    Comment feriez vous ?

  2. #2
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Quelles sont les tables et leur structure ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Table Indices contient les bourses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE [dbo].[Ta_Indices](
    	[Id_Indice] [int] IDENTITY(1,1) NOT NULL,
    	[Indice] [varchar](50) COLLATE French_CI_AS NOT NULL,
    	[Monnaie] [char](1) COLLATE French_CI_AS NULL,
    	[OuvertureGMT] [char](8) COLLATE French_CI_AS NULL,
    	[FermetureGMT] [char](8) COLLATE French_CI_AS NULL,
    	[Bourse] [varchar](50) COLLATE French_CI_AS NULL,
     CONSTRAINT [PK_Ta_Indice] PRIMARY KEY CLUSTERED 
    (
    	[Id_Indice] ASC
    )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    Table jours fériés contient les jours de fermetures exceptionnels (pas les samedi et dimanches)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    CREATE TABLE [dbo].[Ta_JoursFeries](
    	[Indice] [int] NOT NULL,
    	[Date] [datetime] NOT NULL,
    	[Intitule] [varchar](50) COLLATE French_CI_AS NULL,
     CONSTRAINT [PK_Ta_JoursFeries] PRIMARY KEY CLUSTERED 
    (
    	[Indice] ASC,
    	[Date] ASC
    )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
     
    GO
    SET ANSI_PADDING OFF
    GO
    ALTER TABLE [dbo].[Ta_JoursFeries]  WITH CHECK ADD  CONSTRAINT [FK_Ta_JoursFeries_Ta_Indices] FOREIGN KEY([Indice])
    REFERENCES [dbo].[Ta_Indices] ([Id_Indice])
    ON UPDATE CASCADE
    ON DELETE CASCADE
    GO
    ALTER TABLE [dbo].[Ta_JoursFeries] CHECK CONSTRAINT [FK_Ta_JoursFeries_Ta_Indices]
    Merci !!

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Citation Envoyé par NicoNGRI
    ...
    Mon problème, c'est comment j'enchaine chacun de ces test, sachant le status "fermée" sur un des cas entraine un status "fermée" quoiqu'il arrive...

    Comment feriez vous ?
    Avec les 3 conditions d'ouvertures séparées par l'opérateur logique AND.

    En francais : ma bourse est ouverte si

    - on respecte les heures d'ouverture
    - on est dans un des jours d'ouverture de la semaine
    - on est pas dans un jour de fermeture exceptionnel (férié)

  5. #5
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Ok, mais mon soucis est d'avoir un retour du style
    Paris Ouvert
    New-York Fermé

    merci !

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    La quasi majorité des SGBD implémente des fonctions de contrôle (ou structures conditionnelles) telles que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF(condition, valeur de retour si vrai, valeur de retour si faux)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CASE expression 
    WHEN valeurexpression1 THEN expressionretour1
    WHEN valeurexpression2 THEN expressionretour2
    ...
    ELSE expressionretour3
    END
    L'implémentation exacte dépend du SGBD mais la notion existe. Si vous me dîtes que l'expression de la condition ne vous pose pas de problème, vous disposez maintenant de tous les éléments pour renvoyer Vrai/Faux ou 'Ouvert'/'Fermé' dans votre requête.

    Reportez vous à la documentation de votre SGBD pour utiliser les structures conditionnelles qui lui sont propres.

  7. #7
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Merci ! c'est exactement ce qui me fallait ! Je buttais là dessus...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. dbForge Studio SQL Server v3.8 est publié en version finale
    Par DevartStaff dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 23/06/2014, 12h28
  2. Réponses: 2
    Dernier message: 19/04/2011, 22h42
  3. Réponses: 3
    Dernier message: 05/04/2006, 16h40
  4. [VB.NET] [SQL SERVER] connexions ouvertes
    Par lucie.houel dans le forum ASP.NET
    Réponses: 22
    Dernier message: 20/03/2006, 09h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo