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

Requêtes PostgreSQL Discussion :

Supprimer des dates anciennes


Sujet :

Requêtes PostgreSQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2021
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Supprimer des dates anciennes
    Bonjour,

    J'essaie de supprimer les dates anciennes de chaque mois, et garder que la premiere date.

    Voilà un exemple :

    07/01/2021
    14/01/2021
    21/01/2021
    28/01/2021

    04/02/2021
    11/02/2021
    18/02/2021
    25/02/2021

    05/03/2021
    11/03/2021
    18/03/2021
    25/03/2021

    01/04/2021
    08/04/2021
    15/04/2021
    22/04/2021

    Résultat attendu :

    07/01/2021
    04/02/2021
    05/03/2021
    01/04/2021

    J'ai déjà essayé avec cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from conso where 'Extract Date' not in (select * from( select min( 'Extract Date') from conso group by to_char('Extract Date', 'yyyy-mm-dd')) as t)
    Mais j'ai eu cette erreur :

    Error: ERROR: function to_char(unknown, unknown) is not unique

    Indice : Could not choose a best candidate function. You might need to add explicit type casts.

    Position : 113

    SQLState: 42725

    ErrorCode: 0
    Est-ce que vous pouvez m'aider svp ?

    Merci

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    C'est parce que le nom de votre colonne (Extract Date) contient des majuscules et surtout une espace (ce qui est déconseillé).
    Si vous mettez le nom de la colonne entre apostrophe, pour PostgreSQL, ça devient une chaîne de caractères "classique".
    Pour faire référence à la colonne, il faut la mettre entre guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select * 
    from conso 
    where "Extract Date" not in (
        select * from ( 
            select min( "Extract Date") 
            from conso 
            group by to_char("Extract Date", 'yyyy-mm-dd')
        ) as t
    )
    Plusieurs remarques :
    • N'utilisez pas l'étoile.
    • La sous-requête a toutes les chances de ne pas fonctionner (étoile, group by une donnée qui n'existe pas dans la liste de sélection, etc.
    • Il y a moyen de faire plus efficace qu'en passant par NOT IN


    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    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,
    C'est la troisième discussion que tu lances sur le même sujet, pour le même problème.
    Qu'est-ce qui ne va pas avec les réponses que tu as eut dans la première ?

    On ne peut pas tout fusionner pour avoir toutes les questions/réponses au même endroit ?

    Tatayo

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2021
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci @ced, la requête fonctionne bien maintenant, mais je ne comprends pas pourquoi elle me retourne aucune ligne.

    @tatayo oui j'ai remis la discussion ici dans le forum postgresql, par ce que l'autre était en Mysql, je croyais au debut que c'est la meme chose mais finalement la requête n'est pas été fonctionnée en postgresql.

Discussions similaires

  1. Supprimer des dates anciennes
    Par ayoub36.ah dans le forum Requêtes
    Réponses: 13
    Dernier message: 26/04/2022, 20h04
  2. [XL-2003] Supprimer des dates en fonction du jour puis effectuer un tri.
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 11/02/2013, 19h06
  3. [XL-2003] Macro supprimant des dates
    Par Marine1990 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/08/2012, 17h11
  4. Problème de Ctime pour des dates anciennes
    Par bertnane dans le forum MFC
    Réponses: 3
    Dernier message: 16/06/2010, 23h11
  5. supprimer des données une fois la date passée
    Par Bazooka dans le forum Access
    Réponses: 2
    Dernier message: 09/02/2007, 21h39

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