A voir également:
- Fonction de calcul php
- Fonction si et - Guide
- Calcul moyenne excel - Guide
- Easy php - Télécharger - Divers Web & Internet
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
26 réponses
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 14:12
23 juil. 2013 à 14:12
Salut !
A quoi te sers scenario_sequence_annee ?
On ne nome pas une table avec un "as" dans le from, c'est juste [nom de la table] [nom que tu donnes].
Ensuite tu "déclare" parametres_hydro comme p1 et scenario_parametres_physiques comme v1, mais par contre tu ne fais rien de scenario_sequance_annee tu ne lui donne pas de nom.
Syntaxe plus simple pour ce genre de requete :
SELECT a.champ1, b.champ3, c.champ6
FROM table1 a, table2 b, table3 c
WHERE a.id = b.id
AND b.id = c.id
AND a.id = c.id
Si tu as une jointure donc deux tables, tu as une condition dans le where.
Si par contre tu as trois tables, il faut les joindre les trois ensemble donc 3 conditions
A quoi te sers scenario_sequence_annee ?
On ne nome pas une table avec un "as" dans le from, c'est juste [nom de la table] [nom que tu donnes].
Ensuite tu "déclare" parametres_hydro comme p1 et scenario_parametres_physiques comme v1, mais par contre tu ne fais rien de scenario_sequance_annee tu ne lui donne pas de nom.
Syntaxe plus simple pour ce genre de requete :
SELECT a.champ1, b.champ3, c.champ6
FROM table1 a, table2 b, table3 c
WHERE a.id = b.id
AND b.id = c.id
AND a.id = c.id
Si tu as une jointure donc deux tables, tu as une condition dans le where.
Si par contre tu as trois tables, il faut les joindre les trois ensemble donc 3 conditions
Merci jeremy.s, la table scenario_sequence_annee je l'utilise comme lien entre le deux autre tables pour avoir les calcules ds chaque scénario
par contre j'ai suivie ta requête et toujours j'ai le même erreur
$sql='select(v1.taux_concentration*p1.precipitation)
from scenario_parametres_physiques v1 scenario_sequence_annee S1, parametres_hydro p1
WHERE v1.id_scenario=S1.id_scenario
AND p1.annee= S1.annee'
PS: je veux juste selectionner deux champs de table scenario_parametres_physiqueset parametres_hydros , la scenario_sequence_anneee je l'utilise pour la jointure entre le 2 autres tables
je te donner lastructure de mes 3 tables
scenario_parametres_physiques (id_scenario , taux _concentration, ..)
scenario_sequence_anneee (id_scenario, annee, num_annee)
parametres_hydros (annee, mois , percipitation)
tu peux m'aider de faire la requête correcte merci d'avance
par contre j'ai suivie ta requête et toujours j'ai le même erreur
$sql='select(v1.taux_concentration*p1.precipitation)
from scenario_parametres_physiques v1 scenario_sequence_annee S1, parametres_hydro p1
WHERE v1.id_scenario=S1.id_scenario
AND p1.annee= S1.annee'
PS: je veux juste selectionner deux champs de table scenario_parametres_physiqueset parametres_hydros , la scenario_sequence_anneee je l'utilise pour la jointure entre le 2 autres tables
je te donner lastructure de mes 3 tables
scenario_parametres_physiques (id_scenario , taux _concentration, ..)
scenario_sequence_anneee (id_scenario, annee, num_annee)
parametres_hydros (annee, mois , percipitation)
tu peux m'aider de faire la requête correcte merci d'avance
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 14:56
23 juil. 2013 à 14:56
Si tu déclares trois tables, tu es obligé de les joindre, c'est comme ca.
Donc déjà première erreur de syntaxe :
FROM scenario_parametres_physiques v1s scenario_sequence_annee S1, parametres_hydro p1
Ensuite dans ton WHERE il te manque une jointure entre v1 et s1
Donc déjà première erreur de syntaxe :
FROM scenario_parametres_physiques v1s scenario_sequence_annee S1, parametres_hydro p1
Ensuite dans ton WHERE il te manque une jointure entre v1 et s1
en fait comme je t'ai déjà dit la table scenario_sequence_annee pour lier entre les 2 tables F scenario_parametres_physiques et parametres_hydro
j'en ai un lien entre scenario_sequence_annee etscenario_parametres_physiques c'est à dire entre S1 et v1
et un lien entre scenario_sequence_annee et parametres_hydro: entre S1 et p1
et ici j'ai utilisé 2 conditions:
WHERE v1.id_scenario=S1.id_scenario
AND p1.annee= S1.annee'
par contre j'en ai pas un lien entre scenario_parametres_physiques et parametres_hydro v1 et p1
c'est pour ça j'ai pas la 3 émme condition, comment je peux faire ???
j'en ai un lien entre scenario_sequence_annee etscenario_parametres_physiques c'est à dire entre S1 et v1
et un lien entre scenario_sequence_annee et parametres_hydro: entre S1 et p1
et ici j'ai utilisé 2 conditions:
WHERE v1.id_scenario=S1.id_scenario
AND p1.annee= S1.annee'
par contre j'en ai pas un lien entre scenario_parametres_physiques et parametres_hydro v1 et p1
c'est pour ça j'ai pas la 3 émme condition, comment je peux faire ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 15:07
23 juil. 2013 à 15:07
Il te faut absolument une jointure entre v1 et p1. Si t'en a pas tu ne peux pas mettre p1 dans ta requete ...
c'est pour ça j'ai utilisé l'INNER JOIN tu peux voir ça dans mon primer message mais j'en ai un erreur SQL je sais pas d'ou il vient
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 15:12
23 juil. 2013 à 15:12
Dis voir ta requete en francais :)
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 15:16
23 juil. 2013 à 15:16
Genre met la structure de tes tables et dis moi ce que tu veux récupéré ;-)
ok :)
alors mes 3 tables sont comme ça :
scenario_parametres_physiques (id_scenario , taux _concentration, ..)
scenario_sequence_anneee (id_scenario, annee, num_annee)
parametres_hydros (annee, mois , percipitation)
je veux récuperer taux_concentration et percipitation pour faire le calcul
et ce calcul il va être en fonction de chaque id-scenraio
de X= taux_concentration * percipitation
alors mes 3 tables sont comme ça :
scenario_parametres_physiques (id_scenario , taux _concentration, ..)
scenario_sequence_anneee (id_scenario, annee, num_annee)
parametres_hydros (annee, mois , percipitation)
je veux récuperer taux_concentration et percipitation pour faire le calcul
et ce calcul il va être en fonction de chaque id-scenraio
de X= taux_concentration * percipitation
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 15:34
23 juil. 2013 à 15:34
Ok donc :
SELECT a.id_scenario, a.taux_concentration * (
SELECT precipitation FROM scenario_sequence_anne WHERE annee = b.annee
) as calcul
FROM scenario_paramètres_physiques a, paramètres_hydros b
WHERE a.id_scenario = b.id_scenario
Essaye ca
SELECT a.id_scenario, a.taux_concentration * (
SELECT precipitation FROM scenario_sequence_anne WHERE annee = b.annee
) as calcul
FROM scenario_paramètres_physiques a, paramètres_hydros b
WHERE a.id_scenario = b.id_scenario
Essaye ca
ça marche pas toujours SQL erreur si c'est possible tu me passe ton adresse mail pour que je t'envoie la page avec les tables comme ça tu peux tester mon code sur ton pc Merci
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 15:42
23 juil. 2013 à 15:42
Nan mais je sais pourquoi, ma requete est bonne, mais le problème c'est que le select précipitation renvois plusieurs valeurs ...
Donc le problème c'est ta table parametre_hydros ... Il te faut une clé primaire dessus sinon c'est pas possible
Donc le problème c'est ta table parametre_hydros ... Il te faut une clé primaire dessus sinon c'est pas possible
c'est normal d'voir plusieurs valeurs pour la précipitation par ce que pour chaque année j'en ai 12 valeurs ( 12 mois ) , et pour la table parametre_hydros la clé primaire c'est l'annee pourquoi chez moi ça marche pas :(
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
23 juil. 2013 à 16:15
23 juil. 2013 à 16:15
Il faudrait un mois aussi dans scenario_sequence_anneee aussi alors ;-)
mais j'utilise pas le mois dans la table scenario_sequence_anneee , j'en ai pas besoin dans cette table j'ai cherché par tt la solution mais j'arrive pas :(
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
24 juil. 2013 à 08:20
24 juil. 2013 à 08:20
Tu veux 12 résultats ? Genre tu veux affiché chaque mois pour une année ?
jeremy.s
Messages postés
1226
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
2 septembre 2013
79
24 juil. 2013 à 11:07
24 juil. 2013 à 11:07
Ok ok !
Alors je te propose de faire 12 requetes enfaite !
$res = array()
for($i = 1 ; $i <= 12 ; $i++){
$req = $bdd->prepare('SELECT a.id_scenario, a.taux_concentration * (
SELECT precipitation FROM scenario_sequence_anne WHERE annee = b.annee AND mois = :mois
) as calcul
FROM scenario_paramètres_physiques a, paramètres_hydros b
WHERE a.id_scenario = b.id_scenario');
$req->binValue(':mois', $i, PDO::PARAM_STR);
$req->execute() or die(print_r($req->errorInfo()));
$res[] = $req->fetch(PDO::FETCH_ASSOC);
}
Alors je te propose de faire 12 requetes enfaite !
$res = array()
for($i = 1 ; $i <= 12 ; $i++){
$req = $bdd->prepare('SELECT a.id_scenario, a.taux_concentration * (
SELECT precipitation FROM scenario_sequence_anne WHERE annee = b.annee AND mois = :mois
) as calcul
FROM scenario_paramètres_physiques a, paramètres_hydros b
WHERE a.id_scenario = b.id_scenario');
$req->binValue(':mois', $i, PDO::PARAM_STR);
$req->execute() or die(print_r($req->errorInfo()));
$res[] = $req->fetch(PDO::FETCH_ASSOC);
}
en fait j'ai essayé avec ta requête il m'affiche erreur , j'ai essayé avec cette requête dans phpmyadmin
SELECT (
v1.taux_concentration * p1.precipitation
) AS total, p1.Mois AS mois
FROM parametres_hydro AS p1, scenario_parametres_physiques AS v1, scenario_sequence_annee AS v2
WHERE v1.id_scenario = v2.id_scenario
AND p1.annee = v2.annee
GROUP BY v2.id_scenario
ORDER BY v2.num_annee DESC
il m' a affiché
total mois
0 1
2.6 1
4.125 1
comment je peux faire pour avoir les résultat de 12 mois de 1 jusqu'à 12 ?
SELECT (
v1.taux_concentration * p1.precipitation
) AS total, p1.Mois AS mois
FROM parametres_hydro AS p1, scenario_parametres_physiques AS v1, scenario_sequence_annee AS v2
WHERE v1.id_scenario = v2.id_scenario
AND p1.annee = v2.annee
GROUP BY v2.id_scenario
ORDER BY v2.num_annee DESC
il m' a affiché
total mois
0 1
2.6 1
4.125 1
comment je peux faire pour avoir les résultat de 12 mois de 1 jusqu'à 12 ?