J'ai une requête qui retourne des dates qui ne sont dans aucun ordre. J'ai besoin de sélectionner la dernière ligne de la sous-requête. Le problème est toutes les solutions que je peux trouver en ligne utilise quelque chose comme qui ne servira pas mon objectif, car il commande d'abord les dates sous forme de descection (ou ASC). P> Supposons que le qry_doc_date retourne: p> comme nous pouvons voir que les valeurs retournées ne sont pas correctes. Si j'utilise p> , il renvoie "2019-07-16" mais j'ai besoin de "2019-05-22" qui est la dernière ligne. P> Modifier 1:
J'essaie de convertir cette requête VBA en MySQL. P> DLast("arrival_date", "qry_doc_date", "[package_id] = " & Me!lstPackage)
3 Réponses :
Votre question ne fait pas trop de sens en fonction de la norme SQL. Dans l'absence d'une commande code> par la clause code>, le moteur de base de données est libre de renvoyer les lignes dans tout ordre em>. Cet ordre peut même changer avec le temps. P>
Le seul moyen d'obtenir la dernière ligne aléatoire est de les faire tous et de les jeter tous sauf pour le dernier. p>
Maintenant, si vous avez juste besoin
Vous avez raison. Je pense que j'ai mal compris ce que la requête VBA veut que je revienne. J'ai édité ma question. S'il vous plaît jeter un coup d'oeil à nouveau.
En réponse aux informations supplémentaires de votre édition:
Edit 1: J'essaie de convertir cette requête VBA en MySQL. P>
DLast("arrival_date", "qry_doc_date", "[package_id] = " & Me!lstPackage)
Je crois que cette fonction dlast est ajoutée au code car une entrée a été faite quelque part dans la table correspondante juste avant d'exécuter cette fonction. Cette date est extraite de la définir à une autre fonction. C'est ainsi que l'autre développeur a fait le code. J'ai confirmé que la dernière entrée de la date est requise et je comprends qu'il deviendra obsolète juste après avoir effectué une autre entrée dans ce tableau.
Qu'est-ce dont vous avez besoin, c'est à qry_doc_date em> pour inclure un numéro de ligne séquentielle . Ensuite, vous pouvez utiliser quelque chose comme ceci: p>
Je pense que votre réponse produira le résultat requis dont j'ai besoin. Je vais essayer cela dans une journée ou deux et mettez-le à jour ici comme la réponse. Merci
Ça a marché. Merci. Veuillez ulployer la question si vous estimez que cela était assez utile autant de personnes ne savaient pas à propos de cette fonction Row_Number () dans MySQL 8.0
Génial! Merci pour les commentaires.
Les tables ne sont pas des ensembles de commandes. Ce qui est aujourd'hui la dernière ligne, peut être différent de la deuxième seconde suivante en fonction de la manière dont la base de données apporte les données. Vous ne pouvez pas dire quelle est la dernière ligne sauf si vous utilisez
ordre par code>, avez-vous un identifiant pour vous dire quelle est la dernière ligne?
Apparemment pas à ce stade. La requête "qry_doc_date" que j'ai mentionnée inclut en outre plusieurs sous-requêtes dans la hiérarchie qui tombe finalement sur une table "TBL_VOYAGE" qui possède une pièce d'identité et cette colonne d'arrivée. Devrais-je apporter cet identifiant ici? En outre, vous voulez dire que je pourrais obtenir des résultats différents chaque fois que je dirige cette requête?
Pourquoi pas seulement
Sélectionnez max (qry_doc_dates.arrival_date) code>?
@Alex vient d'essayer cela. Il renvoie également le même résultat.
C'est impossible, jusqu'à ce que vous ayez des personnages invisibles quelque part dans les chaînes
Pa même résultat, je veux dire la valeur de date maximale de la liste des dates.
Mais j'ai besoin de "2019-05-22" code> pourquoi vous en avez besoin de 22? Ce qui ne nous donne pas un contexte sur ce que vous essayez de faire. BTW vous en avez également deux 22 sur ces données.
J'ai besoin de cette date car la requête VBA que j'essaie de convertir en requête MySQL possède la fonction
dlast code> qui sélectionne la dernière ligne à partir des valeurs renvoyées. J'ai mentionné cette question dans la modification 1. J'ai la liste des dattes retournées, mais je suis coincé à essayer de comprendre ce que
dlast code> veut (la dernière ligne autant que j'ai compris) et c'est pourquoi je J'essaie d'obtenir la dernière ligne retournée. Les deux mêmes dates que vous avez mentionnées sont la partie de la base de données héritée.