Maison >base de données >tutoriel mysql >Comment sélectionner des lignes de date maximales avec des montants de chèque non nuls dans SQL ?

Comment sélectionner des lignes de date maximales avec des montants de chèque non nuls dans SQL ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-08 13:18:44970parcourir

How to Select Maximum Date Rows with Non-Zero Check Amounts in SQL?

Extraction des dernières entrées avec des valeurs de contrôle non nulles à partir d'une table SQL

Ce guide montre comment récupérer efficacement les enregistrements les plus récents pour chaque groupe, en filtrant les montants de chèques non nuls. Supposons un tableau structuré comme ceci :

<code>group    date      cash  checks
  1    1/1/2013     0      0
  2    1/1/2013     0      800
  1    1/3/2013     0      700
  3    1/1/2013     0      600
  1    1/2/2013     0      400
  3    1/5/2013     0      200</code>

L'approche SQL suivante permet d'y parvenir :

Tout d'abord, on trouve la date maximale pour chaque groupe où la checks valeur est supérieure à zéro :

<code class="language-sql">SELECT group, MAX(date) AS max_date
FROM table
WHERE checks > 0
GROUP BY group;</code>

Cela donne :

<code>group    max_date
  2    1/1/2013
  1    1/3/2013
  3    1/5/2013</code>

Ensuite, nous joignons ce résultat au tableau d'origine pour récupérer les checks montants correspondants :

<code class="language-sql">SELECT t.group, t.date AS max_date, t.checks
FROM table t
INNER JOIN (
  SELECT group, MAX(date) AS max_date
  FROM table
  WHERE checks > 0
  GROUP BY group
) AS a ON a.group = t.group AND a.max_date = t.date;</code>

Cette requête finale produit le résultat souhaité :

<code>group    max_date    checks
  2    1/1/2013    800
  1    1/3/2013    700
  3    1/5/2013    200</code>

Remarque importante : L'utilisation de mots réservés (comme date) comme noms de colonnes est fortement déconseillée. Cela peut entraîner des erreurs de syntaxe SQL et rendre votre code plus difficile à maintenir. Envisagez des noms plus descriptifs et sans ambiguïté pour vos colonnes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn