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 :

Select


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 394
    Par défaut Select
    J'ai deux tables:

    la 1ère: "Tarif" avec une colonne Prix , une colonne Date , une colonne IDType , une colonne IDUSER

    la 2ème: "Type" avec la colonne IDType en clé primaire

    Je veux avoir les enregistrements qui ont pour critères:
    exemple date<=20040720 et IDUSER=1
    mais seulement la date plus grande et qui a un IDType dans la table Type.

    Je vous donne des valeurs pour exemple:

    IDType / Date / Prix / IDUSer
    1 / 20040701 / 20 / 1
    1 / 20040501 / 18 / 1
    2 / 20040701 / 10 / 1
    2 / 20040501 / 8 / 1

    Dans ce cas se serait les lignes 1 et 3.

    C'est bête mais je ne m'en sors pas. Help !!!!!

    A+

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 12
    Par défaut
    Je ne suis pas sur d'avoir bien compris
    je dirais :
    select id_type,max(prix) from ta_table group by id_type having iduser=1 and date<=20040720

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 82
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT * FROM
    Tarif
    WHERE
    idUser = 1 and 
    date < 20040720 and 
    idType is not null and 
    date = (select max(date) from tarif)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 12
    Par défaut Re: Select
    Citation Envoyé par Thomad

    Dans ce cas se serait les lignes 1 et 3.
    je pense pas que ta solution soit bonne elmilouse puisqu'il faut sélection LES maximums!

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 394
    Par défaut
    Effectivement si je mets date<20040601, je n'ai pas de résultat.

    Précision IDType est toujours présent dans les 2 tables.Le problème s'est d'avoir la date max selon un critère <= ( la date du jour ou une date antérieure ) et de ce résultat avoir les Type ( via IDType ) .

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 82
    Par défaut
    parasit je ne pense pas qu'on cherche les prix maximum. en tout cas, je vois pas où c'est ecrit.

    Thomad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * FROM
    Tarif
    WHERE
    idType is not null and
    date = (select max(date) from tarif WHERE date < 20040720 and idUser = 1)
    est ce que c'est mieux?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 12
    Par défaut
    Elmilouse ah oui j'ai mal lu! tu me prete tes lunettes ? 8)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 394
    Par défaut
    Bingo Elmilouse !!! Effectivement c'est çà.

    Au final çà donne:

    SELECT * FROM actes_tarif , actes_type
    WHERE
    actes_tarif.idActe_Type = actes_type.idActe_Type And
    actes_tarif.date_tarif = (select max(actes_tarif.date_tarif) from actes_tarif

    WHERE actes_tarif.date_tarif <= 20040701 and actes_tarif.idUser = 1)

    J'ai mis <= 20040701 à la place de <20040701 et enlevé idType is not null car idType toujours pésent dans les 2 tables et donc jamais null

    Encore mille merci à tous.

    Content,content !!

    A+

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [VB6] [Crystal] Selection enregistrement
    Par littlecow dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 11/01/2005, 13h08
  3. SELECT
    Par Thomad dans le forum SQL
    Réponses: 2
    Dernier message: 13/03/2003, 20h56
  4. TEdit : selection du texte et autre fonction
    Par Odulo dans le forum Composants VCL
    Réponses: 5
    Dernier message: 01/08/2002, 14h27
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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