Bonjour,
Je rencontre un problème pour écrire les requêtes SQL d'un cas d'étude.
L'énoncé est le suivant:
On a 2 tables Coursactions(nomaction,jour, valeurouverture, valeurfermeture) et Météo(jour, pluie).
La table Coursactions recense pour chaque jour et pour chaque action la valeur d'ouverture et la valeur de fermeture.
La table Météo donne pour chaque jour l'intensité de pluie ('sans', 'faible', 'moyenne', 'forte').
La première requête qui me pose problème est la liste des actions qui montent chaque jour de forte pluie.
J'arrive à avoir la liste des actions qui montent une jour de forte pluie, mais je n'arrive pas à isoler celles qui ne montent QUE les jours de forte pluie.
1 2 3
| SELECT COURSACTIONS.NOMACTION, COURSACTIONS.JOUR, COURSACTIONS.VALEUROUVERTURE, COURSACTIONS.VALEURFERMETURE, METEO.PLUIE
FROM COURSACTIONS LEFT JOIN METEO ON COURSACTIONS.JOUR = METEO.JOUR
WHERE METEO.PLUIE="FORTE" AND COURSACTIONS.VALEURFERMETURE>COURSACTIONS.VALEUROUVERTURE |
Je pense qu'il y a une solution basée sur les vues, ou avec une opération ensembliste MINUS, mais je n'arrive pas à bonne syntaxe.
La deuxième question qui me bloque est l'action qui a monté le plus (en proportion) hier.
La encore j'arrive à avoir la liste des actions qui ont monté hier avec la proportion mais je n'arrive pas à extraire celle qui a la proportion la plus forte
1 2 3
| SELECT HIER.NOMACTION, HIER.JOUR, HIER.VALEURFERMETURE, TODAY.NOMACTION, TODAY.JOUR, TODAY.VALEURFERMETURE, ((TODAY.VALEURFERMETURE/HIER.VALEURFERMETURE)*100)
FROM COURSACTIONS TODAY, COURSACTIONS HIER
WHERE HIER.NOMACTION=TODAY.NOMACTION AND HIER.JOUR=(TODAY.JOUR-1) AND TODAY.JOUR=#2003-11-11# AND TODAY.VALEURFERMETURE>HIER.VALEURFERMETURE |
Mon jeu de données est le suivant:
NOMACTION JOUR VALEUROUVERTURE VALEURFERMETURE
PEUGEOT 11/09/2001 100 50
PEUGEOT 10/11/2003 100 140
PEUGEOT 11/11/2003 100 150
PEUGEOT 12/11/2003 130 150
RENAULT 11/09/2001 100 120
RENAULT 09/11/2003 120 130
RENAULT 10/11/2003 120 130
RENAULT 11/11/2003 120 140
RENAULT 12/11/2003 130 150
RENAULT 13/11/2003 150 90
RENAULT 14/11/2003 90 130
RENAULT 15/11/2003 130 130
RENAULT 16/11/2003 130 125
RENAULT 17/11/2003 125 130
TEST 10/11/2003 80 110
TEST 11/11/2003 90 100
JOUR PLUIE
10/11/2003 FORTE
11/11/2003 SANS
12/11/2003 FAIBLE
13/11/2003 SANS
16/11/2003 FORTE
Votre aide sera la bienvenue.
Cordialement
Partager