A voir également:
- {MySQL}
- Mysql community server - Télécharger - Bases de données
- Phpmyadmin a tenté de se connecter au serveur mysql, et le serveur a rejeté la connexion. merci de vérifier les valeurs de host, username et password dans la configuration et de s'assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur mysql. ✓ - Forum PHP
- Could not connect to mysql! please check your database settings! - Forum Redhat
- Mysql error 1 ✓ - Forum Réseaux sociaux
- Access vs mysql - Forum Webmastering
6 réponses
nb22721
Messages postés
63
Date d'inscription
vendredi 22 mai 2009
Statut
Membre
Dernière intervention
27 octobre 2010
1
5 nov. 2009 à 22:52
5 nov. 2009 à 22:52
bonsoir,
As tu un message d'erreur quand tu lances ta requête?
Est il possible que ce soit parce que tu as oubliés des _
a la place de
FROM client_credit_maintenance ccm, maintenance m
==> FROM client_credit_maintenance_ccm,maintenance_m
Sinon généralement il faut un group by apres le Where quand on utilise un SUM, Count etc... c'est pour ça que j'ajoute toujours l'id en plus dans le select
Cordialement.
As tu un message d'erreur quand tu lances ta requête?
Est il possible que ce soit parce que tu as oubliés des _
a la place de
FROM client_credit_maintenance ccm, maintenance m
==> FROM client_credit_maintenance_ccm,maintenance_m
Sinon généralement il faut un group by apres le Where quand on utilise un SUM, Count etc... c'est pour ça que j'ajoute toujours l'id en plus dans le select
Cordialement.
Merci de ta réponse
j'avais une erreur dans le script du haut mais c etait fait expres pour comprendre le soucis
Lorsque je fais ceci
SELECT
SUM(ccm.creditpreventif) as creditP,
SUM(ccm.creditcorrectif) as creditC,
SUM(m.tpsMPrev) as tpsP,
SUM(m.tpsMCor) as tpsC
FROM client_credit_maintenance ccm, maintenance m WHERE ccm.id_client=m.id_client
je n'ai pas d erreur mais les données reçu sont erronée
creditP creditC tpsP tpsC
10800 7200 14400 7200
en faite il me double la valeur de tpsP et tpsC car il existe qu'une seule ligne actuellement dans ma table maintenance et deux dans celle du crédit
c'est pour cela la syntax est fausse
je veux biensur au final avoir creditP - tpsP et reditC - tpsC
j'arrive a le faire en deux requete avec PHP mais j'aimerai decouvrir la syntax pour le faire d'une fois
j'avais une erreur dans le script du haut mais c etait fait expres pour comprendre le soucis
Lorsque je fais ceci
SELECT
SUM(ccm.creditpreventif) as creditP,
SUM(ccm.creditcorrectif) as creditC,
SUM(m.tpsMPrev) as tpsP,
SUM(m.tpsMCor) as tpsC
FROM client_credit_maintenance ccm, maintenance m WHERE ccm.id_client=m.id_client
je n'ai pas d erreur mais les données reçu sont erronée
creditP creditC tpsP tpsC
10800 7200 14400 7200
en faite il me double la valeur de tpsP et tpsC car il existe qu'une seule ligne actuellement dans ma table maintenance et deux dans celle du crédit
c'est pour cela la syntax est fausse
je veux biensur au final avoir creditP - tpsP et reditC - tpsC
j'arrive a le faire en deux requete avec PHP mais j'aimerai decouvrir la syntax pour le faire d'une fois
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
8 nov. 2009 à 18:53
8 nov. 2009 à 18:53
Hello
Pourquoi n'as tu pas fait des jointures?
Ce serait plus fiable pour le résultat.
De plus l'opération de soustraire ou d'additionner par exemple, mieux vaut la faire via PHP. Mysql est pas doué pour ça.
SQL server oui.
SELECT cm.id_client,
,SUM(ccm.creditpreventif) as creditP
,SUM(ccm.creditcorrectif) as creditC
,SUM(m.tpsMPrev) as tpsP
,SUM(m.tpsMCor) as tpsC
FROM client_credit_maintenance ccm
LEFT JOIN maintenance m ON m.id_client = cm.id_client
GROUP BY cm.id_client
Par contre je n'ai pas bien compris l'esprit de ta requete.
Maintenance c'est une table qui contient quoi ?
Pourquoi n'as tu pas fait des jointures?
Ce serait plus fiable pour le résultat.
De plus l'opération de soustraire ou d'additionner par exemple, mieux vaut la faire via PHP. Mysql est pas doué pour ça.
SQL server oui.
SELECT cm.id_client,
,SUM(ccm.creditpreventif) as creditP
,SUM(ccm.creditcorrectif) as creditC
,SUM(m.tpsMPrev) as tpsP
,SUM(m.tpsMCor) as tpsC
FROM client_credit_maintenance ccm
LEFT JOIN maintenance m ON m.id_client = cm.id_client
GROUP BY cm.id_client
Par contre je n'ai pas bien compris l'esprit de ta requete.
Maintenance c'est une table qui contient quoi ?
Bonsoir
merci de vos réponses
en effet j'ai resolu le probleme comme tu l'as dit a l'aide de PHP pour m'en sortir mais je vous savoir si cela était possible étant donne que c'est une opération courante et que je sais la faire sous MSSQL et non pas sous MYSQL ^^.
Merci pour vos contributions
Arne
merci de vos réponses
en effet j'ai resolu le probleme comme tu l'as dit a l'aide de PHP pour m'en sortir mais je vous savoir si cela était possible étant donne que c'est une opération courante et que je sais la faire sous MSSQL et non pas sous MYSQL ^^.
Merci pour vos contributions
Arne
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moderno31
Messages postés
872
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
8 nov. 2009 à 22:33
8 nov. 2009 à 22:33
quel est le script SQL de ta solution ?
ça m'interesse
ça m'interesse
Bonjour voici la solution que j'ai utiliser pour ma problématique :
function calculniveaumaintenance($id_client)
{
$data = mysql_query("SELECT SUM(creditpreventif) as creditP,SUM(creditcorrectif) as creditC FROM client_credit_maintenance WHERE id_client ='".$id_client."'") OR DIE (mysql_error());
$credit = array(0,0,0,0,0,0);
if($infos = mysql_fetch_array($data))
{
$credits[0] = $infos['creditP'];
$credits[1] = $infos['creditC'];
}
$data = mysql_query("SELECT SUM(tpsMPrev) as tpsP,SUM(tpsMCor) as tpsC FROM maintenance WHERE id_client ='".$id_client."'") OR DIE (mysql_error());
if($infos = mysql_fetch_array($data))
{
$credits[2] = $infos['tpsP'];
$credits[3] = $infos['tpsC'];
}
$credits[4] = $credits[0]-$credits[2];
$credits[5] = $credits[1]-$credits[3];
return $credits;
}
j'ai décomposer les requetes pour faire plus simple, l'un pour calculer le total de temps de crédit et l'autre pour le temps de crédit utilisé.
Si cela peut vous aider et si vous avez des améliorations a proposer je suis toujours d'écoute ;)
bonne journée
Froz
function calculniveaumaintenance($id_client)
{
$data = mysql_query("SELECT SUM(creditpreventif) as creditP,SUM(creditcorrectif) as creditC FROM client_credit_maintenance WHERE id_client ='".$id_client."'") OR DIE (mysql_error());
$credit = array(0,0,0,0,0,0);
if($infos = mysql_fetch_array($data))
{
$credits[0] = $infos['creditP'];
$credits[1] = $infos['creditC'];
}
$data = mysql_query("SELECT SUM(tpsMPrev) as tpsP,SUM(tpsMCor) as tpsC FROM maintenance WHERE id_client ='".$id_client."'") OR DIE (mysql_error());
if($infos = mysql_fetch_array($data))
{
$credits[2] = $infos['tpsP'];
$credits[3] = $infos['tpsC'];
}
$credits[4] = $credits[0]-$credits[2];
$credits[5] = $credits[1]-$credits[3];
return $credits;
}
j'ai décomposer les requetes pour faire plus simple, l'un pour calculer le total de temps de crédit et l'autre pour le temps de crédit utilisé.
Si cela peut vous aider et si vous avez des améliorations a proposer je suis toujours d'écoute ;)
bonne journée
Froz