SQL - Simplifier requêtes
Callie33
Messages postés
139
Date d'inscription
Statut
Membre
Dernière intervention
-
Callie33 Messages postés 139 Date d'inscription Statut Membre Dernière intervention -
Callie33 Messages postés 139 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Voici un échantillon de la table de j'utilise :
Pour un company_symbol, je veux :
Calculer (open for a date)/(close for an other date) - 1
Le nombre de lignes où open > close
Le nombre de lignes où open < close
Le nombre de jours où company_symbol a le plus grand close
Le nombre de jours où company_symbol a le plus petit close
Voici les requêtes que j'ai faites :
Pour la 4, ça ne fonctionne pas, pourriez-vous m'aiguiller ?
Aussi, serait-il possible de simplifier chacune des requêtes, ou même les réunir en une seule ?
Merci d'avance,
Callie
Voici un échantillon de la table de j'utilise :
| eod_id | company_symbol | date | open | close | high | low | | 1 | AAA | 01-01-2000 | 40.00 | 42.00 | 43.00 | 39.00 |
Pour un company_symbol, je veux :
Calculer (open for a date)/(close for an other date) - 1
Le nombre de lignes où open > close
Le nombre de lignes où open < close
Le nombre de jours où company_symbol a le plus grand close
Le nombre de jours où company_symbol a le plus petit close
Voici les requêtes que j'ai faites :
SELECT (SELECT OPEN FROM eod WHERE company_symbol="AAPL" AND DATE="2013-04-05") / (SELECT OPEN FROM eod WHERE company_symbol="AAPL" AND DATE="2000-01-03") - 1;
SELECT COUNT(*) FROM eod WHERE company_symbol="AAPL" AND CLOSE>OPEN;
SELECT COUNT(*) FROM eod WHERE company_symbol="AAPL" AND CLOSE<OPEN;
SELECT COUNT(*) FROM EOD WHERE company_symbol IN (SELECT company_symbol FROM eod WHERE CLOSE IN (SELECT max(CLOSE) FROM eod GROUP BY DATE));
Pour la 4, ça ne fonctionne pas, pourriez-vous m'aiguiller ?
Aussi, serait-il possible de simplifier chacune des requêtes, ou même les réunir en une seule ?
Merci d'avance,
Callie
A voir également:
- Sql simplifier
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Sql query download - Télécharger - Gestion de données
- Ora-00933: la commande sql ne se termine pas correctement ✓ - Forum Oracle
Merci pour l'aide, mais cette requête ne fait pas ce que je souhaite.
Le "SELECT MAX (close) ne retourne qu'une ligne, or AAPL peut être le max(close) pour plusieurs date.
Je suis assez claire ?
Merci :)
En d'autres termes, le nombre de jours où le champ CLOSE est à son maximum, pour chaque COMPANY_SYMBOL ?
En fait, c'est une table qui contient des valeurs boursières. company_symbol est le nom de l'action, est close la valeur de l'action à la fermeture d'une journée.
Le but de la requête est de savoir pour une action, sur une période donnée, le nombre de fois où elle a été l'action la plus chère à la fermeture (close).
C'est plus clair comme ça ?
Ce n'est pas plutôt le nombre de fois où elle a été à son meilleur niveau à la fermeture ?
Ce qui donne :
S'il faut chercher le nombre de jours où l'action a été la plus chère à la fermeture, il faut trouver le plus haut CLOSE de toute la tables sans critère sur l'action :
Du coup les requêtes ne permettent pas de faire ça. Merci :)