J'ai deux tables:Utiliser résultat de la requête en tant que paramètre pour une autre requête
Table item -> itemId -> itemName
factures de table -> InvoiceID -> InvoiceNum -> InvoiceDate - > ItemId etc (non pertinent).
Je dois trouver, pour un article distinct, la date de facturation la plus récente (et la plus récente). Jusqu'à présent, je créer une première requête distincte sur la première table, puis, pour chaque résultat que j'exécuter une nouvelle requête sur la deuxième table (top 1 triés par date desc)
Il fonctionne, mais il faut toujours (je plus de 10000 articles). J'utilise asp classic et access mais je suis à peu près sûr que le problème est lié au SQL.
J'ai essayé avec la clause WHERE ... IN
mais la requête affiche toutes les dates de facturation et pas seulement la dernière.
Toute aide? Merci d'avance! Je comprends que j'ai été très générique. ici est l'instruction SQL que je suis en train d'utiliser:
SELECT table1.id, table3.name, table1.name, table2.trans_num, Max (table2.transaction_date_h) AS MaxDitransaction_date_h, table2.amount_amt DE table3 INNER REJOIGNEZ (tableau 1 INNER JOIN table2 SUR table1.id = table2.item_id) = ON table3.id table1.preferred_vendor_id GROUP BY table1.id, table3.name, table1.name, table2.trans_num, table2.amount_amt ORDER BY table3. nom, table1.name, table2.trans_num, Max (table2.transaction_date_h) DESC;
Si j'exécute cette requête, le résultat est l'intégralité du jeu d'enregistrements. Comme dit, je voudrais récupérer uniquement la dernière transaction_date_h pour chaque table1.id distinct