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 :

Récupérer les 7 derniers jours


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Femme Profil pro
    PL/SQL
    Inscrit en
    Septembre 2016
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : Arabie Saoudite

    Informations professionnelles :
    Activité : PL/SQL
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 189
    Points : 65
    Points
    65
    Par défaut Récupérer les 7 derniers jours
    bonsoir a tout et a tous
    je suis débutant en TSQL et je chercher une fonction en sql pour récupérer les 7 derniers jours pour une date mis comme paramétre
    j'ai essayer avec ce code mais il retourne ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg 102, Level 15, State 1, Procedure MyFunction, Line 21
    Incorrect syntax near ')'.
    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
    21
    create function [dbo].[MyFunction]
    (@date1 datetime)
    returns table 
    as  
    return
    (select dateadd(day,0,@date1)
    union all 
    select dateadd(day,-1,@date1)
    union all
    select dateadd(day,-2,@date1)
    union all
    select dateadd(day,-3,@date1)
    union all
    select dateadd(day,-4,@date1))
    union all
    select dateadd(day,-5,@date1)
    union all
    select dateadd(day,-6,@date1)
    union all
    select dateadd(day,-7,@date1) 
    )
    Qui peut m'aider a le corriger SVP
    merci d'avance

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Je ne connais pas trop TSQL, mais il ne manque pas un FROM dans tes requêtes ?

    Tatayo.

  3. #3
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Il suffit de regarder le message d'erreur pour se rendre compte d'une erreur de syntaxe. L'oeil averti remarquera de suite la double parenthèse fermante ligne 14 !
    Ensuite, tu aurais eu une autre erreur t'informant qu'aucun nom de colonne n'a été spécifié. Il suffit d'en rajouter un dans le premier SELECT.

    Voici le code de la fonction final
    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
    21
    create function [dbo].[MyFunction]
    (@date1 datetime)
    returns table 
    as  
    return
    (select dateadd(day,0,@date1) AS jour
    union all 
    select dateadd(day,-1,@date1)
    union all
    select dateadd(day,-2,@date1)
    union all
    select dateadd(day,-3,@date1)
    union all
    select dateadd(day,-4,@date1)
    union all
    select dateadd(day,-5,@date1)
    union all
    select dateadd(day,-6,@date1)
    union all
    select dateadd(day,-7,@date1) 
    )
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  4. #4
    Membre du Club
    Femme Profil pro
    PL/SQL
    Inscrit en
    Septembre 2016
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : Arabie Saoudite

    Informations professionnelles :
    Activité : PL/SQL
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 189
    Points : 65
    Points
    65
    Par défaut
    merci bien maintenant est fonctionnelle
    par comptre je cherche a modifier ma fonnction de telle sorte que le nbre de ligne retourné dépont d'une deuxième paramétres
    par exemple si je le donne 10 elle me retourne les 10 dernier jours
    Qui a une piste ?

  5. #5
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 541
    Points
    10 541
    Billets dans le blog
    21
    Par défaut
    Puisque tu ne cherches qu'une piste, je vais t'indiquer par où commencer tes recherches

    Il faut que tu utilises une CTE récursive qui va te générer n lignes, numérotée de 1 à N. Ensuite, il suffira de faire comme précédemment, un DATEADD avec les nombres générés.
    SQLPro a écrit un excellent article sur les CTE récursives
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. récupérer les 3 derniers enregistrements
    Par COLOMBAT dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/09/2007, 11h10
  2. [Interbase] Récupérer les N derniers enregistrements
    Par mameziane dans le forum InterBase
    Réponses: 5
    Dernier message: 05/09/2007, 00h50
  3. [Dates] Afficher les 7 derniers jours
    Par fabien14 dans le forum Langage
    Réponses: 7
    Dernier message: 12/05/2007, 00h16
  4. Récupérer les N derniers lignes
    Par arsenik7 dans le forum Oracle
    Réponses: 8
    Dernier message: 12/05/2006, 13h35
  5. récupérer les champs mis à jour
    Par xave dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h40

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