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 :

Connaitre la derniere date de commande d'un article au catalogue


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 43
    Points : 14
    Points
    14
    Par défaut Connaitre la derniere date de commande d'un article au catalogue
    Bonjour

    Dans le but de faire du ménage dans nos catalogue matériels/consommables/logiciels concernant les catalogue relatifs au commandes/achats sur notre application je souhaiterai lister les articles non commandés depuis 12 mois ou avant mais je n'y arrive pas

    J'ai une table catalog avec des ID et j'ai une table ligne de commande qui fait appel aux id du catalogue , puis la date de commande.



    Merci de votre aide

  2. #2
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT CAT.Id_cat
    FROM CAT, LIGNE_COM
    WHERE CAT.Id_cat = LIGNE_COM.Id_cat
    AND DATEDIFF(DAY,DATE_COM) > 365
    Cela fonctionne si tu prend les articles qui ont été commandés déjà une fois, qui sont donc renseignés dans la table LIGNE_COM.

    Veux-tu également ceux qui n'ont jamais été commandés ?

    Merci

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 43
    Points : 14
    Points
    14
    Par défaut
    Ah oui je veux bien

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 43
    Points : 14
    Points
    14
    Par défaut
    En fait j 'ai ma table am_catalog qui contient le catalog et les articles , avec un catalog id , puis j'ai ma tables ep_order qui contient des id de commandes puis ma tables ep_order_details qui contients les lignes de commandes avec des lignes order_details_id qui correspond au lignes de commandes puis un order_id qui contient le numero de commande , puis un catalog_id ...
    la date est présente sur la table ep_order avec un champs date de type validation_date

    merci à toi

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 50
    Points : 38
    Points
    38
    Par défaut
    Peux-tu exprimer correctement la syntaxe de tes tables car j'ai du mal à suivre là, désolé.
    Du genre :

    AM_CATALOG (Id_cat)
    EP_ORDER(Id_com, validation_date)
    EP_ORDER_DETAILS(Order_details_id, Order_id, Id_cat)

    Merci

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 43
    Points : 14
    Points
    14
    Par défaut
    am_catalog ( catalog id)
    ep_order ( order_id , order number, validation date)
    ep_order_details ( order_details_id , order_id, catalog_id)

    merci a toi

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mai 2011
    Messages : 41
    Points : 25
    Points
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT cat.CATALOG_ID
    FROM AM_CATALOG cat
    LEFT OUTER JOIN (
        SELECT CATALOG_ID
        FROM EP_ORDER_DETAILS ed
        INNER JOIN EP_ORDER e ON ep.ORDER_ID = e.ORDER_ID
        WHERE VALIDATION_DATE > DATEDIFF(day, -365, GETDATE())
        ) cde_moins_un_an
    ON cat.CATALOG_ID = cde_moins_un_an.CATALOG_ID
    WHERE cde_moins_un_an.CATALOG_ID IS NULL
    J'ai bon ? Pour le coup je ne prend que les articles n'ayant pas été commandés depuis moins d'un an, voire pas commandés du tout.

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Les produit du catalogue qui n'ont pas été commandés dans les douze derniers mois ?
    C'est à dire :Quelles sont les lignes de la table catalogue, pour lesquels il n'existe pas de ligne correspondante (catalog_id) dans la table des commandes dont la date est supérieure à "maintenant moins douze mois" :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT catalog_id 
    FROM am_catalog C
    WHERE NOT EXISTS (
        SELECT *
        FROM ep_order O
        INNER JOIN ep_order_details D
            ON O.order_id = D.order_id
        WHERE D.catalog_id = C.catalog_id
            AND O.validation_date > DATEADD(MONTH, -12, GETDATE())
    )

  9. #9
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 43
    Points : 14
    Points
    14
    Par défaut
    Merci de votre réponse

    J'ai mis à jour celle ci mais sa me sort beaucoup beaucoup de lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT catalog_id, article_model,manufacturer_ref
    FROM am_catalog C
    WHERE NOT EXISTS (
        SELECT *
        FROM ep_order O
        INNER JOIN ep_order_details D
            ON O.order_id = D.order_id
        WHERE D.catalog_id = C.catalog_id
            AND O.validation_date > DATEADD(MONTH, -12, GETDATE())

  10. #10
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Merci de votre réponse

    J'ai mis à jour celle ci mais sa me sort beaucoup beaucoup de lignes

    Pourtant la requête est bonne... mais attention il va également vous ressortir les produits jamais commandés...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/07/2006, 14h32
  2. Connaitre le dernier élément de mysql_fetch_array
    Par H-bil dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 12/06/2006, 15h06
  3. Comment trouver la dernière date de modification d'un fichier
    Par je®ome dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/05/2006, 13h23
  4. Connaitre le dernier id inséré
    Par royrremi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/05/2004, 16h38
  5. Recuperation derniere date
    Par Fyna dans le forum Requêtes
    Réponses: 13
    Dernier message: 25/06/2003, 17h07

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