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 ?
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!