Erreur sql
angela
-
angela -
angela -
Bonjour,
J'utilise wampserver pour créer et manipuler une base de donnée. Ma base contient 3 tables: client, appel, recharge. La table client a comme clé primaire msisdn, ce clé représente une clé étrangère pour les deux autres tables. Le premier problème est que je n'arrive pas à faire la jointure entre ces tables ni en utilisant l'interface graphique ni en utilisant le langage sql. J'ai utilisé le code suivant:
SELECT MSISDN FROM APPEL
WHERE MSISDN.APPEL =MSISDN.CLIENT
Mais ceci ne marche pas, je trouve l'erreur: #1054 - Unknown column 'MSISDN.APPEL' in 'where clause'
Un autre problème, je veux faire un traitement des appels en utilisant un curseur:
DECLARE
CURSOR Mon_Curseur IS
SELECT MSISDN
FROM client
OPEN Mon_Curseur
FOR MSISDN IN Mon_Curseur LOOP
SELECT SUM( TOTAL_COST ) AS TOTAL_COST
FROM APPEL
END LOOP
CLOSE Mon_Curseur
END;
A chaque fois je reçois cet erreur:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE CURSOR Mon_Curseur IS SELECT MSISDN FROM client OPEN Mon_Curseur FO' at line 1
J'attends votre aide le plus tôt possible.
Merci d'avance
J'utilise wampserver pour créer et manipuler une base de donnée. Ma base contient 3 tables: client, appel, recharge. La table client a comme clé primaire msisdn, ce clé représente une clé étrangère pour les deux autres tables. Le premier problème est que je n'arrive pas à faire la jointure entre ces tables ni en utilisant l'interface graphique ni en utilisant le langage sql. J'ai utilisé le code suivant:
SELECT MSISDN FROM APPEL
WHERE MSISDN.APPEL =MSISDN.CLIENT
Mais ceci ne marche pas, je trouve l'erreur: #1054 - Unknown column 'MSISDN.APPEL' in 'where clause'
Un autre problème, je veux faire un traitement des appels en utilisant un curseur:
DECLARE
CURSOR Mon_Curseur IS
SELECT MSISDN
FROM client
OPEN Mon_Curseur
FOR MSISDN IN Mon_Curseur LOOP
SELECT SUM( TOTAL_COST ) AS TOTAL_COST
FROM APPEL
END LOOP
CLOSE Mon_Curseur
END;
A chaque fois je reçois cet erreur:#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE CURSOR Mon_Curseur IS SELECT MSISDN FROM client OPEN Mon_Curseur FO' at line 1
J'attends votre aide le plus tôt possible.
Merci d'avance
A voir également:
- Erreur sql
- Erreur 0x80070643 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Iptv erreur de lecture - Forum TV & Vidéo
- Comment recuperer whatsapp supprimé par erreur - Guide
2 réponses
essayer juste avec les requetes cé mieux ;)
$reponse=mysql_query("select distinct msisdn from client ") ;
while($donnees=mysql_fetch_array($reponse))
{
$rep1=mysql_query("select sum( msisdn) as somme from appel where msisdn='.$donnees['msisdn '].'") ;
$don1=mysql_fetch_array($rep1);
echo $donnees['msisdn '].' - '.$don1['som']
}
$reponse=mysql_query("select distinct msisdn from client ") ;
while($donnees=mysql_fetch_array($reponse))
{
$rep1=mysql_query("select sum( msisdn) as somme from appel where msisdn='.$donnees['msisdn '].'") ;
$don1=mysql_fetch_array($rep1);
echo $donnees['msisdn '].' - '.$don1['som']
}
$reponse=mysql_query("select distinct msisdn from client ") ;
while($donnees=mysql_fetch_array($reponse))
{
$rep1=mysql_query("select sum( total_cost) as somme from appel where msisdn='.$donnees['msisdn '].'") ;
$don1=mysql_fetch_array($rep1);
echo $donnees['msisdn '].' - '.$don1['somme '] ;
}
normalemment ce traitement doit bien marcher
si t'as une erreur indique moi ou il se trouve
pour la corriger
while($donnees=mysql_fetch_array($reponse))
{
$rep1=mysql_query("select sum( total_cost) as somme from appel where msisdn='.$donnees['msisdn '].'") ;
$don1=mysql_fetch_array($rep1);
echo $donnees['msisdn '].' - '.$don1['somme '] ;
}
normalemment ce traitement doit bien marcher
si t'as une erreur indique moi ou il se trouve
pour la corriger
merci pour votre réponse, le premier problème est résolu grâce à vous . Il me reste le deuxième.
Pour le second problème, même si je ne connais donc pas le code en MySQL ce qui me surprend de ce que vous avez affiché, c'est que vous ne placer pas la valeur du SELECT dans une variable ... et c'est l'utilité même d'un curseur ! Un curseur permet de parcourir une sélection, record par record et chaque champ est placé dans une variable.
Seconde chose, ce genre de requête est "interne" au moteur de base de données. On ne peut pas , exécuter ce genre de requête dans une page PHP comme on le ferait pour coder un SELECT par exemple. Je dis ceci au cas où ;-)
Dernièrement, croyez le vieux routier que je suis, c'est d'éviter autant que faire se peut, les curseurs ! Cela demande une montée en régime de la machine très important, excepté bien sûr sur vous disposez d'une bête de course avec beaucoup beaucoup de RAM.
bye