Multiples champs liés aux dates - SQL/NoSQL - Programmation
Marsh Posté le 12-01-2006 à 14:17:15
Il dit qu'il ne voit pas le problème.
Marsh Posté le 12-01-2006 à 14:28:31
Oui, mais si tu nous donnes pas plus que ça on va pas pouvoir t'aider.
T'as fait quoi pour l'instant?
Marsh Posté le 12-01-2006 à 14:31:09
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?
Marsh Posté le 12-01-2006 à 14:32:24
Tout de suite c'est mieux...
Quel SGBD?
Marsh Posté le 12-01-2006 à 14:35:41
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
Marsh Posté le 12-01-2006 à 14:38:28
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
Marsh Posté le 12-01-2006 à 14:42:58
Cela ne fonctionne pas...Mais le desc a la fin de ta requete est bon?
Marsh Posté le 12-01-2006 à 14:44:17
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...
Marsh Posté le 12-01-2006 à 14:45:35
C'est bien ça il ne comprend pas le top 1 : bien joué!tu as une autre idée?
Marsh Posté le 12-01-2006 à 14:48:59
oui, mais plus complexe...
Essaie ça :
Code :
|
Marsh Posté le 12-01-2006 à 14:55:16
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!!!
Marsh Posté le 12-01-2006 à 14:56:18
il te dit quoi?
Marsh Posté le 12-01-2006 à 14:59:07
Ah oui mais là c'est pas du jeu...elle est bonne ma requête.
Marsh Posté le 12-01-2006 à 15:00:05
J'ai pas dit le contraire!!!lol
Mais moi sa veut pas marcher!!!snif
Marsh Posté le 12-01-2006 à 15:01:10
Bah oui m'enfin une base de données sous excel, aussi...
Marsh Posté le 12-01-2006 à 15:13:50
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....
Marsh Posté le 12-01-2006 à 15:14:44
Mais c'est quoi la vraie base, en fait?
Et tu passes par quoi actuellement?
Marsh Posté le 12-01-2006 à 15:22:51
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?
Marsh Posté le 12-01-2006 à 15:25:53
Nan, j'y connais rien à excel.
Essaie ton histoire de ci-query, on sait jamais...
Marsh Posté le 13-01-2006 à 08:33:15
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...
Marsh Posté le 13-01-2006 à 09:51:59
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...
Marsh Posté le 17-01-2006 à 15:20:45
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????
Marsh Posté le 17-01-2006 à 20:36:41
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 :
|
Marsh Posté le 17-01-2006 à 20:39:10
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 :
|
Ici, on prends le MIN.
Marsh Posté le 12-01-2006 à 14:03:50
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