Flux rss
Collection CommentÇaMarche.net
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[SQL] requête : obtenir le total

Riwalenn, le vendredi 15 septembre 2006 à 17:49:16 
 Signaler ce message aux modérateurs

Bonjour,

sous le code suivant, j'aimerais obtenir le total genre SUM(Stock.Quantity), mais j'obtiens une erreur si je le fait.. quelqu'un peut-il me dire quoi mettre ? Merci d'avance !

<?
include ("connexion_stock.php");
?>
<html>
<head>
</head>
<body>
<?
$sqlconnect=odbc_connect($dsn,$username,$password);
$sqlquery="SELECT Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality FROM Products, Stock where Products.ProductName=Stock.ProductName and Products.Type <> 'S' 
Group by Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality order by Products.ProductName, Products.Type;" or die (mysql_error()); 
$process=odbc_exec($sqlconnect, $sqlquery);
?>
<html>
<head>
<title>Etat du Stock</title>
<link href="../resolutions/style.css" rel="stylesheet" type="text/css">
</head>

<body>
<p align="center"><b><font face="Arial" size="5">Eurosource Stock Report</font></b></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<table width="90%" border="0" align="center" cellpadding="1" cellspacing="1">
  <tr class="tab04"> 
    <td> 
      <div align="center">ProductName</div></td>
    <td> 
      <div align="center">ProductDesc</div></td>
    <td> 
      <div align="center">Quality</div></td>
    <td> 
      <div align="center">Quantity</div></td>
    <td> 
      <div align="center">Type</div></td>
  </tr>
  <?php while(odbc_fetch_row($process)){ $ProductName = odbc_result($process,"ProductName"); $ProductDesc = odbc_result($process,"ProductDesc"); $Type = odbc_result($process,"Type"); $Quality = odbc_result($process,"Quality");   ?>
  <tr class="tab05"> 
    <td><?php  echo $ProductName ; ?></td>
    <td><?php  echo $ProductDesc ; ?></td>
    <td><div align="center"><?php  echo $Quality ; ?></div></td>
    <td><div align="center"></div></td>
    <td><div align="center"><?php  echo $Type ; ?></div></td>
  </tr><?php }odbc_close($sqlconnect); ?>
</table>

</body>
</html>
</body>
</html>
Cordialement,
Riwalenn

1

Maxg59, le vendredi 15 septembre 2006 à 21:34:55

Salut !
C'est quoi comme erreur que tu as ? Max

Répondre à Maxg59

2

michelatoutfox, le mardi 19 septembre 2006 à 20:46:48

Selon la norme SQL92, ta requète devrait s'écrire ainsi:
SELECT Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality, sum(stock.quantity) FROM Products, Stock where Products.ProductName=Stock.ProductName and Products.Type <> 'S'
Group by Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality order by Products.ProductName, Products.Type

en bref, tu as oublié ton champ d'agrégation (le SUM) ; alors sur quoi veux-tu que ton moteur SQL fasse un regroupement (le group by) ?

si possible, préfères une clause JOIN à une clause WHERE, elle sera plus rapide à l'exécution

Répondre à michelatoutfox

3

Riwalenn, le lundi 25 septembre 2006 à 17:41:23

Bonjour,
si je fais ce que tu me dis (chose que j'avais déjà essayé, c'est d'ailleurs pour ça que je demande de l'aide)

<?
$sqlconnect=odbc_connect($dsn,$username,$password);
$sqlquery="SELECT Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality, SUM(Stock.Quantity) 
FROM Products, Stock 
where Products.ProductName=Stock.ProductName and Products.Type <> 'S' 
Group by Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality, Stock.Quantity
order by Products.ProductName, Products.Type ;" or die (mysql_error()); 
$process=odbc_exec($sqlconnect, $sqlquery);
?>


en rajoutant donc le code suivant :
<?php while(odbc_fetch_row($process)){ $ProductName = odbc_result($process,"ProductName"); $ProductDesc = odbc_result($process,"ProductDesc"); $Type = odbc_result($process,"Type"); $Quality = odbc_result($process,"Quality"); $Quantity = odbc_result($process,"Quantity");  ?>
  <tr class="tab05"> 
    <td><?php  echo $ProductName ; ?></td>
    <td><?php  echo $ProductDesc ; ?></td>
    <td><div align="center"><?php  echo $Quality ; ?></div></td>
    <td><div align="center"><?php  echo $Quantity ; ?></div></td>
    <td><div align="center"><?php  echo $Type ; ?></div></td>
  </tr><?php }odbc_close($sqlconnect); ?>


j'ai l'erreur suivante :

Warning: odbc_result(): Field Quantity not found in c:\program files\easyphp1-8\www\eurosource-intranet\references\print_stock.php on line 43

la ligne 43 étant :

<?php while(odbc_fetch_row($process)){ $ProductName = odbc_result($process,"ProductName"); $ProductDesc = odbc_result($process,"ProductDesc"); $Type = odbc_result($process,"Type"); $Quality = odbc_result($process,"Quality"); $Quantity = odbc_result($process,"Quantity");  ?>


Merci de m'aider SVP... Cordialement,
Riwalenn

Répondre à Riwalenn

4

phunk, le lundi 25 septembre 2006 à 17:49:19

Salut ! l'erreur vient de ta requête :

SELECT Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality, SUM(Stock.Quantity) 
FROM Products, Stock 
where Products.ProductName=Stock.ProductName and Products.Type <> 'S' 
Group by Products.ProductName, Products.ProductDesc, Products.type, Stock.Quality, Stock.Quantity


Enlève "Stock.Quantity" du group by.
Tu dois faire un group by sur tous les autres champs, mais pas sur le champ aggrégé.
Essayes de tester ta requête, ça devrait passer beaucoup mieux :)

Répondre à phunk

5

 Riwalenn, le mardi 26 septembre 2006 à 10:18:12

Merci merci beaucoup :))) c'est bon j'ai enfin ce que je veux lol Cordialement,
Riwalenn

Répondre à Riwalenn
[SQL] requête affichant date dd/mm/yy Bonjour, Je fais un programme en Shell se basant sur des requêtes sql pour afficher des resultats. Ma question est : " comment afficher a l'aide d'une requête sql ( SELECT ....from.....where...) une reponse sous un format dd/mm/yy. Merci d'avance www.commentcamarche.net/forum/affich-2396190-sql-requete-affichant-date-dd-mm-yy
PL/SQL Requete parametrable Bonjour, J’ai une table REUNION de la forme suivante : Code_Id => Number Cd_Lib => Varchar2 (50) Date_Réunion => Date Je veux connaître le nombre de réunions qui ont eu lieu entre date début et date fin par une requête PL/SQL et paramétrer en... www.commentcamarche.net/forum/affich-2454801-pl-sql-requete-parametrable
[SQL+] requete imbriquées Bonjour à tous, j'ai un petit soucis de requete SQL+ (v9.2.0.1.0) en gros, est il faisable de faire : select champ1, champ2 from (select champ1 from table1 where cond1),(select champ2 from table2 where cond2) where champ1>champ2 un truc dans ce gout... www.commentcamarche.net/forum/affich-2932678-sql-requete-imbriquees
[SQL]Requête updateBonjour à tous J'ai un gros problème et je ne comprend pas pourquoi? Je développe une appli web en java et j'ai besoin d'exécuter des requêtes d'update afin de mettre à jour mes tables. Certaines requêtes devraient me permettre de mettre à jour... www.commentcamarche.net/forum/affich-1730023-sql-requete-update
[SQL] Requête SQL en vbaj'ai un petit problème avec une requête sur access je ne n'arrive pas à faire une requete qui me permettra d'arriver à calculer la somme alors je dois calculer la somme de deux quantités puis en faire la différence c-à-d que j'ai la quantité commandée... www.commentcamarche.net/forum/affich-270679-sql-requete-sql-en-vba
Construction requete SQL et select multiple (Résolu)Bonjour à tous, Nouvelle question, et j'espère, la dernière. On va dire que j'abuse :) J'ai donc une page PHP dans la quelle s'affiche une liste d'adhérents. Cette liste est obtenue par la construction, on va dire dynamique, d'une requete SQL. Cette... www.commentcamarche.net/forum/affich-8504611-construction-requete-sql-et-select-multiple
Le langage SQLQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,... www.commentcamarche.net/contents/sql/sqlintro.php3
SQL - Sous-requêtesExpression des sous-requêtes Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en... www.commentcamarche.net/contents/sql/sqlssreq.php3
SQL - Commande SELECTLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la... www.commentcamarche.net/contents/sql/sqlsel.php3