OVH Cloud OVH Cloud

Requête en une étape?

3 réponses
Avatar
tam
Bonjour,=20

A partir d'une table o=F9 j'ai trois infos (id_stock, delai,=20
nombre), je cherche =E0 afficher la chose suivante: pour=20
chaque stock, le nombre correspondant =E0 l'enregistrement=20
suivant: minimum(d=E9lai) o=F9 d=E9lai > 60
Dois-je faire 2 requ=EAtes (pour chaque stock, avoir le=20
d=E9lai satisfaisant =E0 ma condition, puis une jointure sur=20
stock et d=E9lai pour trouver le nombre correspondant), o=F9 y=20
a-t-il un moyen de faire une seule requ=EAte?=20
L'ensemble stock - d=E9lai forme ma cl=E9 primaire.=20

Un grand merci d'avance

3 réponses

Avatar
Bernard
Bonjour,

Il n'est pas utile de créer plusieurs requêtes. Dans ta
requête tu places une première condition (Minimum)
correspondant par exemple à la valeur d'un champ
formulaire :[Formulaires]![Nom du Formulaire]![Champ] et
une seconde condition OU >60

-----Message d'origine-----
Bonjour,

A partir d'une table où j'ai trois infos (id_stock,
delai,

nombre), je cherche à afficher la chose suivante: pour
chaque stock, le nombre correspondant à l'enregistrement
suivant: minimum(délai) où délai > 60
Dois-je faire 2 requêtes (pour chaque stock, avoir le
délai satisfaisant à ma condition, puis une jointure sur
stock et délai pour trouver le nombre correspondant), où
y

a-t-il un moyen de faire une seule requête?
L'ensemble stock - délai forme ma clé primaire.

Un grand merci d'avance
.



Avatar
tam
Ca me permet bien de récupérer le champ delai, mais pas le
nombre correspondant.

voici un exemple concret:
stock id delai nombre
1 5 8
1 7 6
2 4 10
2 6 12

Et je veux obtenir (delai minimum = 5 jours)
stock delai nombre
1 5 8
2 6 12

Je n'arrive pas à le faire en une étape (si je fais un
group by sur "nombre", ça ne fonctionne pas), et comme je
travaille sur des grosses bases, les mises à jour prennent
un temps fou.

-----Message d'origine-----
Bonjour,

Il n'est pas utile de créer plusieurs requêtes. Dans ta
requête tu places une première condition (Minimum)
correspondant par exemple à la valeur d'un champ
formulaire :[Formulaires]![Nom du Formulaire]![Champ] et
une seconde condition OU >60

-----Message d'origine-----
Bonjour,

A partir d'une table où j'ai trois infos (id_stock,
delai,

nombre), je cherche à afficher la chose suivante: pour
chaque stock, le nombre correspondant à l'enregistrement
suivant: minimum(délai) où délai > 60
Dois-je faire 2 requêtes (pour chaque stock, avoir le
délai satisfaisant à ma condition, puis une jointure sur
stock et délai pour trouver le nombre correspondant), où
y

a-t-il un moyen de faire une seule requête?
L'ensemble stock - délai forme ma clé primaire.

Un grand merci d'avance
.

.





Avatar
Ilan
Bonjour,
essaie quelque chose du genre

SELECT ID,First(Delai),Max(Nombre) FRom table where delai>=.... GROUP BY ID

Tu n'auras ainsi qu'une seule ligne par ID.



Ca me permet bien de récupérer le champ delai, mais pas le
nombre correspondant.

voici un exemple concret:
stock id delai nombre
1 5 8
1 7 6
2 4 10
2 6 12

Et je veux obtenir (delai minimum = 5 jours)
stock delai nombre
1 5 8
2 6 12

Je n'arrive pas à le faire en une étape (si je fais un
group by sur "nombre", ça ne fonctionne pas), et comme je
travaille sur des grosses bases, les mises à jour prennent
un temps fou.

-----Message d'origine-----
Bonjour,

Il n'est pas utile de créer plusieurs requêtes. Dans ta
requête tu places une première condition (Minimum)
correspondant par exemple à la valeur d'un champ
formulaire :[Formulaires]![Nom du Formulaire]![Champ] et
une seconde condition OU >60

-----Message d'origine-----
Bonjour,

A partir d'une table où j'ai trois infos (id_stock,
delai,

nombre), je cherche à afficher la chose suivante: pour
chaque stock, le nombre correspondant à l'enregistrement
suivant: minimum(délai) où délai > 60
Dois-je faire 2 requêtes (pour chaque stock, avoir le
délai satisfaisant à ma condition, puis une jointure sur
stock et délai pour trouver le nombre correspondant), où
y

a-t-il un moyen de faire une seule requête?
L'ensemble stock - délai forme ma clé primaire.

Un grand merci d'avance
.

.