J'ai la jointure suivante:Comment obtenir le dernier jeu de données avec la jointure SQL?
SELECT l.cFirma AS Lieferant,
SUM(la.fEKNetto) AS Verbindlichkeiten,
l.kLieferant AS Lieferanten_ID,
100 - gk1.fFaktor * 100 AS Grundkondition,
MAX(gk1.dDatum) AS Datum
FROM tBestellung b, tArtikel a, tBestellpos p, tLieferant l, tLiefArtikel la, tGrundkondition gk1
WHERE
CAST('01.01.2010' AS DATETIME) <= CAST(b.dErstellt AS DATETIME)
AND b.cType = 'B'
AND p.tBestellung_kBestellung = b.kBestellung
AND a.kArtikel = p.tArtikel_kArtikel
AND l.kLieferant = la.tLieferant_KLieferant
AND a.kArtikel = la.tArtikel_kArtikel
AND gk1.tLieferant_kLieferant = l.kLieferant
GROUP BY l.kLieferant, cFirma, gk1.fFaktor
ORDER BY Verbindlichkeiten DESC, Lieferant
S'il vous plaît Fokus sur la table alias "tGrundkondition" solk1. Il existe une colonne DATETIME appelée "dDatum" et une clé étrangère "tLieferant_kLieferant".
Maintenant, je n'ai besoin que des données les plus récentes de cette table, jointes aux autres. J'ai déjà utilisé la fonction MAX (gk1.dDatum), mais je reçois toujours toutes les entrées de gk1. Je n'ai besoin que de la dernière version (avec le dDate le plus élevé). En fait, je n'ai pas besoin de sortir la date, mais seulement pour filtrer les données. J'exécute cette instruction sur Microsoft SQL Server via ODBC. Avez-vous besoin de plus d'informations?
J'espère que vous pouvez m'aider. Merci d'avance.
Merci ça y était . Merci aussi aux autres répondeurs. Mais cette solution renvoie la dernière entrée pour tous les tLieferant tandis que les autres asnwers ne renvoient que la dernière en date (une seule ligne). – c0d3x