Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
707 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Multiples champs liés aux dates

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Multiples champs liés aux dates

n°1282087
benco2964
Posté le 12-01-2006 à 14:03:50  profilanswer
 

J'ai un pb avec une requete qui doit sélectionner des données dans ma bdd. En fait, certains articles possèdent plusieurs dates d'enregistrements avec chacune un prix différent pour l'article. Il faudrait que je sélectionne l'article où la date d'enregistrement est la plus récente. Merci de m'aider :)

mood
Publicité
Posté le 12-01-2006 à 14:03:50  profilanswer
 

n°1282092
skeye
Posté le 12-01-2006 à 14:17:15  profilanswer
 

Il dit qu'il ne voit pas le problème.[:klem3i1]


---------------
Can't buy what I want because it's free -
n°1282106
benco2964
Posté le 12-01-2006 à 14:28:03  profilanswer
 

bah non dsl!mais jsuis pas fort 8-)

n°1282107
skeye
Posté le 12-01-2006 à 14:28:31  profilanswer
 

Oui, mais si tu nous donnes pas plus que ça on va pas pouvoir t'aider.:o
T'as fait quoi pour l'instant?


---------------
Can't buy what I want because it's free -
n°1282110
benco2964
Posté le 12-01-2006 à 14:31:09  profilanswer
 

ma requete est la suivante :  
select no_art,  
         qte_vte,  
         prix_vte,  
         dte_deb,  
         no_tarv  
from bas_tarartv  
where bas_tarartv.no_tarv=0
order by no_art  
 
le probleme est donc qu'un article possède plusieurs dates d'enregistrement. Il faudrait que je récupère la plus récente. C'est plus clair?

n°1282113
skeye
Posté le 12-01-2006 à 14:32:24  profilanswer
 

Tout de suite c'est mieux...;)
 
Quel SGBD?


---------------
Can't buy what I want because it's free -
n°1282115
benco2964
Posté le 12-01-2006 à 14:35:41  profilanswer
 

bah je sais pas trop en fait!lol. Oui je suis un boulet! En tout cas, je travaille sous Excel 2003 directement dans la feuille excel. Ca t'aide?:s

n°1282120
skeye
Posté le 12-01-2006 à 14:38:28  profilanswer
 

[:tibo2002]
 
humm. Essaie ça, p-e :
 
select top 1 no_art,  
         qte_vte,  
         prix_vte,  
         dte_deb,  
         no_tarv  
from bas_tarartv  
where bas_tarartv.no_tarv=0
order by no_art desc


---------------
Can't buy what I want because it's free -
n°1282127
benco2964
Posté le 12-01-2006 à 14:42:58  profilanswer
 

Cela ne fonctionne pas...Mais le desc a la fin de ta requete est bon?

n°1282132
skeye
Posté le 12-01-2006 à 14:44:17  profilanswer
 

il ne comprend pas le top 1 je suppose?
 
Le desc est bon mais je me suis planté, je voulais trier par date descendante, pas par numéro d'article, j'ai oublié de changer...:D


Message édité par skeye le 12-01-2006 à 14:44:34

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 12-01-2006 à 14:44:17  profilanswer
 

n°1282135
benco2964
Posté le 12-01-2006 à 14:45:35  profilanswer
 

C'est bien ça il ne comprend pas le top 1 : bien joué!tu as une autre idée?

n°1282138
skeye
Posté le 12-01-2006 à 14:48:59  profilanswer
 

oui, mais plus complexe...;)
 
Essaie ça :
 

Code :
  1. select no_art, 
  2.          qte_vte, 
  3.          prix_vte, 
  4.          dte_deb, 
  5.          no_tarv 
  6. from bas_tarartv  as t1
  7. where t1.no_tarv=0
  8. and not exists (
  9.    select 1 from bas_tarartv as t2
  10.    where t2.no_tarv=0
  11.    and t2.dte_deb>t1.dte_deb)


---------------
Can't buy what I want because it's free -
n°1282145
benco2964
Posté le 12-01-2006 à 14:55:16  profilanswer
 

arf, sa ne fonctionne toujours pas...:(! Mais que faire!!!Pour être plus clair, voici le pb : après ma requete, voici un extrait du résultat :
 
no_art         qte_vte prix_vte      dte_ced      no_tarv
20000221 1 704,31 13/03/2002 00:00 0
20000221 1 721,92 01/01/2003 00:00 0
20000221 1 722 01/05/2004 00:00 0
 
Il faudrait que je réussisse à conserver seulement la ligne où la date est 2004 : la plus récente quoi!!!

n°1282147
skeye
Posté le 12-01-2006 à 14:56:18  profilanswer
 

il te dit quoi?


---------------
Can't buy what I want because it's free -
n°1282150
benco2964
Posté le 12-01-2006 à 14:56:57  profilanswer
 

pd de mémoire....

n°1282151
benco2964
Posté le 12-01-2006 à 14:57:09  profilanswer
 

pb de mémoire pardon!

n°1282153
skeye
Posté le 12-01-2006 à 14:59:07  profilanswer
 

[:roane]
Ah oui mais là c'est pas du jeu...elle est bonne ma requête.:o


---------------
Can't buy what I want because it's free -
n°1282154
benco2964
Posté le 12-01-2006 à 15:00:05  profilanswer
 

J'ai pas dit le contraire!!!lol
Mais moi sa veut pas marcher!!!snif

n°1282157
skeye
Posté le 12-01-2006 à 15:01:10  profilanswer
 

Bah oui m'enfin une base de données sous excel, aussi...[:pingouino]


---------------
Can't buy what I want because it's free -
n°1282178
benco2964
Posté le 12-01-2006 à 15:13:50  profilanswer
 

en fait les bases de données sont issues d'un logiciel de gestion de prod. Je peux aussi passer par l'assistant requete de excel ou par ci-query si tu prefere....

n°1282179
skeye
Posté le 12-01-2006 à 15:14:44  profilanswer
 

Mais c'est quoi la vraie base, en fait?[:klem3i1]
Et tu passes par quoi actuellement?[:autobot]


---------------
Can't buy what I want because it's free -
n°1282188
benco2964
Posté le 12-01-2006 à 15:22:51  profilanswer
 

Je passe par excel. En fait j'ai ci-link dans excel qui me permet de faire des requetes par excel (requete libre, requete feuille). Et donc c'est pour attaquer des bases d'une gestion de production. Mais, je peux aussi passer par ci-query si tu préfère qui permet de créer des requètes. Cela répond a ta question?

n°1282194
skeye
Posté le 12-01-2006 à 15:25:53  profilanswer
 

Nan, j'y connais rien à excel.[:joce]
 
Essaie ton histoire de ci-query, on sait jamais...[:god]


---------------
Can't buy what I want because it's free -
n°1282200
benco2964
Posté le 12-01-2006 à 15:28:55  profilanswer
 

ok. Merci quand meme d'avoir pris le temps de m'aider!!!:)

n°1282267
benco2964
Posté le 12-01-2006 à 16:21:17  profilanswer
 

Si qqn a une autre idée je suis pas contre :)

n°1282667
benco2964
Posté le 13-01-2006 à 08:33:15  profilanswer
 

Je reviens car je n'ai toujours pas réussi!!!Je voudrais autrement savoir comment il est possible de sélectionner la dernière ligne concernant un article possédant donc plusieurs enregistrements. Ma requete est au dessus et voici un exemple de ce que j'obtient pour l'instant :  
 
no_art          qte_vte    prix_vte          dte_ced   no_tarv
20000221 1 704,31 13/03/2002 00:00       0
20000221 1 721,92 01/01/2003 00:00       0
20000221 1 722 01/05/2004 00:00       0
 
 
voila. Si quelqu'un a une pitite idée...
 

n°1282689
benco2964
Posté le 13-01-2006 à 09:51:59  profilanswer
 

Ou alors je peux essayer par une restriction sur la date de fin que j'ai aussi. Toutes leslignes sue je veux conserver ont leur date de fin au 31/12/2030. Seulement, je n'ai pas réussi à imposer de condition pour ne garder que ces lignes là. Ma requete est :  
 
select no_art,  
         qte_vte,  
         prix_vte,
         dte_deb,  
         no_tarv,
         dte_fin  
from bas_tarartv  
where bas_tarartv.no_tarv=0  
and bas_tarartv.dte_fin=31/12/2030 00:00  
order by no_art
 
Le pb vient de mon format de date?Voici une ligne de mon résultat sans restriction de dte :  
 
no_art qte_vte prix_vte dte_deb no_tarv dte_fin
 
 
20000222   1  722  01/05/2004 00:00 0  31/12/2030 00:00
 
Donc la je ne vois pas parce que j'utilise le meme format de dte pourtant...

n°1285590
benco2964
Posté le 17-01-2006 à 15:20:45  profilanswer
 

J'ai toujours un pb avec cette requete! Enfin plus tout a fait le meme. J'ai réussi a surmonter la difficulté précédente (j'avais la date de fin en champs possible et elle est par défaut à 2030) mai maintenant jeveux rajouter le prix d'achat. Le Problème, c'est un peu la meme chose, c'est que j'ai eu plusieurs commandes pour le meme article. Et donc des prix diférrents.... Voici ma requete :
 
SELECT bas_tarartv.no_art,  
           design1,  
           prix_vte,  
           dte_deb,  
           ach_brlig.prx_unit,  
           ach_brlig.no_cde,  
           ach_brent.dte_livr
FROM bas_art, bas_tarartv, ach_brlig, ach_brent
WHERE no_tarv=0
AND year(dte_fin)=2030
AND bas_art.no_art=bas_tarartv.no_art
AND bas_art.no_art=ach_brlig.no_art
AND ach_brlig.no_br=ach_brent.no_br
ORDER BY bas_tarartv.no_art
 
Comme les commandes ont un numéro croissant, je pensais qu'en utilisant max(ach_brlig.no_cde) dans mon select ce serait bon, pour garder la dernière commande en date. Mais je ne sais pas quoi mettre dans le group by pour la faire marcher cette requete........QQn pourra-t-il m'aider????

n°1285955
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2006 à 20:36:41  profilanswer
 

j'ai pas tout lu, mais je vais répondre à la question originale, par contre je me fais pas chier avec le nom des champs et des tables, t'aura qu'à traduire ;)
 

Code :
  1. select l1.prix, l1.date
  2. from listeprix l1
  3. where l1.produit = 'blabla'
  4. and l1.date = (select max(l2.date) from listeprix l2 where l2.produit = l1.produit)

n°1285957
Arjuna
Aircraft Ident.: F-MBSD
Posté le 17-01-2006 à 20:39:10  profilanswer
 

Evidement, faut une seule commande pour la même date. Si le cas de deux commandes se produit, alors demande si tu dois prendre le min, le max ou quoi...
 

Code :
  1. select min(l1.prix) prix, l1.date
  2.       from listeprix l1
  3.       where l1.produit = 'blabla'
  4.       and l1.date = (select max(l2.date) from listeprix l2 where l2.produit = l1.produit)
  5.       group by l1.date


 
Ici, on prends le MIN.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Multiples champs liés aux dates

 

Sujets relatifs
Dblist et affichage des champs annexesboucles multiples en dos
Champs formulaireDatagrid C# affichage dynamique de champs de texte
Include multiples qui font planter la compilation (Gcc Linux)comparaison de dates en msdos
Comment générer des dates compatibles SOAPAfficher une sélection dans un champs texte
Remplir 3 champs texte avec une liste déroulante[BDD] champs <mémo> et mysql-front
Plus de sujets relatifs à : Multiples champs liés aux dates


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR