Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2011, 21h06   #1
Invité régulier
 
Inscription : avril 2010
Messages : 45
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 45
Points : 6
Points : 6
Par défaut Requête sélection et calcul

Bonjour,

J'aimerais votre aide concernant une requête :

J'ai plusieurs articles dans un fichier excel, chaque article est identifié par deux numéros d'emplacement variant de 11 à 59.

L'objectif est de calculer la distance entre les deux emplacements, soit A - B (ou B - A, peu importe, on prend la valeur Absolue).

exemple : article n°12456, emplacement A : 20 et emplacement B : 26 donc 20-26 = 6 (valeur ABS).

Le problème, c'est que aucuns articles n'est stocké dans les emplacements 29, 30, 39 et 40.

Ainsi, comment élaborer ma requête afin qu'il n'y est pas d'erreur de calcul ?

exemple : article n°12457, emplacement A : 26 et emplacement B : 36 donc 26 - 36 - 2 (pour enlever les emplacements 29 et 30 qui ne doivent pas être pris en compte) = 8 (valeur ABS).

Merci d'avance
Stoo69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 23h18   #2
Membre éprouvé
 
Homme
Inscription : octobre 2007
Messages : 324
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 324
Points : 440
Points : 440
A quoi ressemble le code SQL utilisé pour ta requête sans prendre en compte certains emplacements?
Psychopathe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 23h39   #3
Invité régulier
 
Inscription : avril 2010
Messages : 45
Détails du profil
Informations forums :
Inscription : avril 2010
Messages : 45
Points : 6
Points : 6
Je ne sais justement pas comment élaborer ma requête, as tu une idée?

Merci
Stoo69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 09h33   #4
Membre éprouvé
 
Homme
Inscription : octobre 2007
Messages : 324
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2007
Messages : 324
Points : 440
Points : 440
On suppose que la table s'appelle tableArticle et que nous avons trois champs (article, A, B). On suppose aussi que la valeur de l'emplacement A est inférieure à l'emplacement B. De ce fait A et/ou B ne peuvent pas être dans 29,30,39,40. Si B est supérieur à 29 alors forcément A<29. Même raisonnement que si B>39 alors A<39. D'où:

Code :
1
2
3
 
SELECT tableArticle.article, tableArticle.A, tableArticle.B, [B]-[A]-IIf([B]>29,2,0)-IIf([B]>39,2,0) AS diff
FROM tableArticle
Evidemment, la requête et le raisonnement devront être modifiés si A n'est pas toujours inférieur à B.
Psychopathe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 11h51   #5
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 410
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 410
Points : 4 439
Points : 4 439
bonjour,

Citation:
c'est que aucuns articles n'est stocké dans les emplacements 29, 30, 39 et 40
si on met les emplacements vides dans une table:

TblEmplacementVide(NumEmplacement) (1 enregistrement par emplacement vide)

On peut écrire un truc du genre:
Code sql :
1
2
3
SELECT Art.article, Art.A, Art.B, 
Art.B-Art.A-(SELECT count(*) FROM TblEmplacementVide V WHERE V.NumEmplacement BETWEEN Art.A AND Art.B) AS diff
FROM tableArticle Art

à tester...
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h21.


 
 
 
 
Partenaires

Hébergement Web