J'ai le tableau suivant (Mtable)SQL Déclaration fournit des résultats inattendus
id | sent | number
---------------------------------------
23 | 2017-03-02 00:00:00 | 0
23 | 2017-03-04 00:00:00 | 0
45 | 2017-03-15 00:00:00 | 1.8
45 | 2017-03-17 00:00:00 | 1.9
id: integer, not unique, no primary key
sent: timestamp
number: float
La requête SQL:
SELECT DISTINCT `id`, number as mynum, MAX(`sent`) AS sentOn FROM `mTable` GROUP BY `id`
Le résultat est:
id | mynum | sentOn
------------------------------------
23 | 0 | 2017-03-04 00:00:00
45 | 1.8 | 2017-03-17 00:00:00
attendus le résultat serait:
id | mynum | sentOn
------------------------------------
23 | 0 | 2017-03-04 00:00:00
45 | 1.9 | 2017-03-17 00:00:00
Dans la deuxième rangée je m'attendrais à être le mynum (1.9) avec la dernière date d'envoi (2017-03-17 00:00:00). À la place, SQL-Query fournit le mynum (1.8) à partir de la deuxième date d'envoi la plus récente (2017-03-15 00:00:00).
Des astuces pour résoudre le problème? Merci
ce groupe par la clause n'est pas mal, dans une base MySQL ce type de syntaxe est allowed..while serveur SQL ne permet pas –
oui il est permis, mais il donnera un résultat erroné. –