Tajakne 0 Geschrieben 27. Juli 2015 Melden Teilen Geschrieben 27. Juli 2015 Guten Abend, ich versuche mich schon seit Tagen an einem Problem. Komme aber leider nicht auf die Lösung. Ich habe viele Foren durchforstet und viel zu diesem Thema gefunden. Nur leider klappt es nicht mit der Umsetzung. Meine Hoffnung liegt nun hier in diesem Forum. Zum Problem: Ich benötige aus einer Tabelle den Verkaufspreis. Leider sind in der Orginal Tabelle alle Preisänderung seit bestehen der Datenbank vorhanden. Wenn ich die Datenbank mit einer andern Software verbinde, bekomme ich immer die Meldung Wert nicht eindeutig und gibt immer den ersten Preis raus. Also benötige ich eine Abfrage die mir nur den Aktuellesten Preis des Artikel rausgibt. Das Datum habe ich geschafft ins richtige Format zu bringen: CREATE VIEW "V_Artikelpreis " AS SELECT "Artikel" ."Nummer" "ArtikelNummer" ,"Artikel" ."Bez1" ,"Convert" (CAST ("AP" ."abdatum" -693596 AS "Datetime" ),"SQL_CHAR" ,4 )"AbDatum" ,"AP" ."VK1" "VK1" FROM "VKPreise" "AP" ,"Artikel" "Artikel" WHERE "Artikel" ."Nummer" = "AP" ."Artikel" Diese Abfrage funktioniert einwandfrei. Jetzt müsste ich noch dies dahinter bekommen: http://www.sql-und-xml.de/sql-praxis/detailtabelle-aggregatfunktion-einzelzeilen.html Ich hoffe jemand kann mir helfen? Vielen Dank schon mal... Gruss Zitieren Link zu diesem Kommentar
Tajakne 0 Geschrieben 29. Juli 2015 Autor Melden Teilen Geschrieben 29. Juli 2015 (bearbeitet) Mehr Infos: Tabelle: V_Artikelpreis Spalten: Artikelnummer, Bez1, abdatum, Vk1 Diese Daten bekomme ich nicht in die Zeilen eingefügt... SELECT E.[Artikel-Nummer], E.[Artikel-Name], A.Datum, A.[A-Preis]FROM (tbl_Artikel As E Inner Join tbl_Details As AON E.[Artikel-Nummer] = A.fkey) INNER JOIN (SELECT B.fkey, Max(B.Datum) As [Max-Datum] FROM tbl_Details As B GROUP BY B.fkey) As CON A.fkey = C.fkey And A.Datum = C.[Max-Datum] bearbeitet 29. Juli 2015 von Tajakne Zitieren Link zu diesem Kommentar
hh2000 10 Geschrieben 5. September 2015 Melden Teilen Geschrieben 5. September 2015 Moin, als Anregung, die Abfrage SELECT TOP 1 ArtikelNr, Preis FROM T_Tabelle ORDER BY Datum DESC WHERE Artikel = 4711 ergibt den gesuchten aktuellen Preis für _einen_ Artikel.Das kann man z.B. in eine korrelierende Unterabfrage einbauen: SELECT ArtikelNr, ( SELECT TOP 1 Preis FROM T_Tabelle B ORDER BY Datum DESC WHERE B.ArtikelNr = A.ArtikelNr ) AS AktuellerPreis FROM T_Tabelle A Evtl. noch GROUP BY je nach Bedarf Gruß Kai Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.