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

Développement SQL Server Discussion :

comparer 2 dates d'echeances qui se suivent


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 17
    Points
    17
    Par défaut comparer 2 dates d'echeances qui se suivent
    Bonjour,

    Je travaille sur SQL Server 2005, je doit faire un script qui vérifie que toutes les dates d’échéances doivent se suivre exemple : Date de début échéance = date de fin de l’échéance précédente.

    J'arrive pas à faire cette comparaison vu que je dois comparer une date de début avec la date de fin précédente.

    exemple :
    Id Echeance Date Début Date Fin
    100 1989-03-31 00:00:00 1990-03-31 00:00:00
    101 1990-03-31 00:00:00 1991-03-31 00:00:00
    102 1991-03-31 00:00:00 1992-03-31 00:00:00

    dans cet exemple date début de l'echeance 101 = date fin d'echeance 100.

    Est ce que quelqu'un peut m'aide SVP.

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Simple, avec un peu de SQL !

    Le jeu d'essais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE T (Id INT, Echeance_Date_Debut DATETIME, Echeance_Date_Fin DATETIME);
    SET DATEFORMAT YMD;
    INSERT INTO T VALUES (100, '1989-03-31 00:00:00', '1990-03-31 00:00:00'),
                         (101, '1990-03-31 00:00:00', '1991-03-31 00:00:00'),
                         (102, '1991-03-31 00:00:00', '1992-03-31 00:00:00');
    La requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    -- trouver les échéances non raboutées :        
    WITH T0
    AS
    (                     
    SELECT *, ROW_NUMBER() OVER(ORDER BY Echeance_Date_Debut) AS N
    FROM   T                    
    )
    SELECT *
    FROM   T0 AS T1
           INNER JOIN T0 AS T2
                 ON T1.N = T2.N - 1
    WHERE  T1.Echeance_Date_Fin <> T2.Echeance_Date_Debut

    Insertion d'échéances incorrectes pour test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO T VALUES (103, '1992-03-31 00:00:00', '1993-03-25 00:00:00'),
                         (104, '1993-03-31 00:00:00', '1994-03-31 00:00:00');
    Et pour appredre le SQL, mon site comme mon bouquin, peuvent vous aider !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Normalement j'ai pas besoin de créer la table.
    j'ai déjà un table EcheanceInteret et je dois vérifier que le date début echeance = date fin echeance precedente.

    Juste je dois écrire une requête qui vérifie ça et qui m'extraire les date qui sont différents s'ils existent

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Alors commencez par respecter les règles du forum en nous postant le DDL de vos tables ainsi qu'une jeu d'essais :
    http://www.developpez.net/forums/d96...vement-poster/

    Cela vous évitera de perdre du temps et pire, de nous en faire perdre !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    désolée pour ce malentendu.

    Normalement, je travaille sur SQL Server, j'ai plusieurs tables d'echeances qui sont déjà créer et remplies.

    je prends la table EcheanceInteret qui a pour champs : IdEcheance, Date Début echenace, Date Fin echeance..

    On m'a demandé de faire une requête qui vérifie que toutes les dates d’échéances doivent se suivre: Date de début échéance = date de fin de l’échéance précédente.

    Alors dans ma requête je dois comparer la Date de début échéance avec la date de fin de l’échéance précédente. si ils sont égales c'est ce que je cherche, sinon je dois récupérer ces dates pour les corriger.


    J'espère que j'étais claire cette fois.


    Merci

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Encore une fois vous ne respectez pas les règles du forum en ne postant pas le SQL DDL de votre table !

    En sus, la requête que je vous ais fournit correspond parfaitement à votre attente !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/03/2014, 21h46
  2. [Dates] Periodes qui se suivent ?
    Par bicz400 dans le forum Langage
    Réponses: 4
    Dernier message: 15/04/2008, 14h15
  3. Group by sur Produit mais avec date qui se suivent
    Par suantay dans le forum Langage SQL
    Réponses: 9
    Dernier message: 29/02/2008, 12h13
  4. [Date] Comparer des dates au format mySQL "date
    Par Marc_P dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 25/10/2004, 15h15
  5. comment comparer deux dates?
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 21h08

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