Requette SQL DISTINT, COUNt GROUP
Résolucs_eli42 Messages postés 141 Date d'inscription Statut Membre Dernière intervention -
Bonjour
Je dois récupérer des infos d'une table stock
$sql = $pdo->query("SELECT distinct id,CODE,ART,FRS,RAY,COULE,SAISIE,OBS,DAT,MAJ,'' as qt, count(*) as qt2, count(*) FROM article_mouvement where ART='$id' and SAISIE >= '$lg' GROUP by CODE,ART,FRS,RAY,COULE,OBS,SAISIE Order by SAISIE,FRS,RAY,COULE ASC");
Pour que la requette fonctionne j'ai du mettre après MAJ virgule et une double apostrophe
et mettre AS counter et conter2 pour que je puisse récupérer qt2
Malgré le résultat juste je m’interroge sur la propreté du code
une requette qui fonctionne dans PHPAdmin mais pas dans mon PHP
$sql = $pdo->query("SELECT distinct id,CODE,ART,FRS,RAY,COULE,SAISIE,OBS,DAT,MAJ,qt(*) FROM article_mouvement where ART='$id' and SAISIE >= '$lg' GROUP by CODE,ART,FRS,RAY,COULE,OBS,SAISIE Order by SAISIE,FRS,RAY,COULE ASC");
Mais echo $row->qt(*) ca plante
Alert('Beau temps belle mer');
Jorgio
- Requete sql pix
- Code ascii pix - Guide
- Que cache l'ours polaire pix ✓ - Forum Google Chrome
- Dans la table des matières de ce document le chapitre 6 et ses 2 sections n'apparaissent pas pix - Forum Word
- Supprimez les composantes rouge et verte de cette image. quel mot apparaît ? pix - Forum Word
- Consultez le code source de cette page pix - Forum Réseaux sociaux
2 réponses
Bonjour,
Je ne maitrise pas la syntaxe php. Mais concernant le sql et select, on utilise soit DISTINCT, soit GROUP BY, mais ce dernier est indispensable si on a des fonctions d'agrégat comme count(*). Après la création d'un alias s'effectue à la suite du champ que l'on veut renommer : count(*) as nbr.
Je ne sais pas exactement ce que tu veux faire, mais voilà une syntaxe à étudier, en distinguant une somme, d'un total d’occurrences.
SELECT ID,CODE,ART,FRS,RAY,COULE,SAISIE,OBS,DAT,MAJ, sum(qt) AS sqt, count(*) AS nbr FROM article_mouvement WHERE ART='$id' and SAISIE >= '$lg' GROUP BY ID,CODE,ART,FRS,RAY,COULE,SAISIE,OBS,DAT,MAJ ORDER BY SAISIE,FRS,RAY,COULE ASC
Bonjour Jee
Je me suis penché sur ta solution surtout la ligne 2
Il est vrais que répondre a une question avec si peux d'élément c'est compliqué
dans ce cas il y a le code article présent dans le stock 27 pieces
Mais je dois affiche QT, SAISIE (longueur de la piece), FRS (fournisseurde la piece), RAYON (ou est stocké les pieces), COULE le numéro de fonderie de la piece)
Mon résultat doit être sur 5 lignes pour regouper les 27 pieces en stock
Ca permet au commercial de vendre des pièces identiques
et a l'atelier de savoir ou est stocké la pièces
j'ai donc codé :
$sql = $pdo->query("SELECT distinct id,CODE,ART,FRS,RAY,COULE,SAISIE,OBS,DAT,MAJ, COUNT(id) AS nbr FROM article_mouvement where ART='$id' and SAISIE >= '$lg' GROUP by CODE,ART,FRS,RAY,COULE,OBS,SAISIE Order by SAISIE,FRS,RAY,COULE ASC");
et j'ai bien mon résultat que j'ai besoin
Un grand merci à toi, a la lecture de mon code c'est plus clair
Alert('Beau temps belle mer');