![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Delphi
Hilfe bei Select Abfrage
Ich habe eine bisher einfache sql-Abfrage
Code:
Das Ergebnis ist in dem Fall:Select lieferant, gueltig_ab from ARTIKEL_PREIS_EK_K where artikel_nr = :artikel_nr group by lieferant, gueltig_ab
Code:
Ich möchte nun pro Lieferant den letzten Datensatz vor heutigem Datum und alle ab heute haben.Lieferant Gueltig_AB 72442 01.06.2008 72442 07.08.2012 72442 10.08.2013 72442 18.06.2014 72442 09.05.2018 75894 01.02.2021 75894 01.06.2021 In diesem Fall wären das die letzten drei Sätze. Ich habe überhaupt keinen Plan wie man das macht. |
AW: Hilfe bei Select Abfrage
Hallo,
schau Dir mal Having an. |
AW: Hilfe bei Select Abfrage
In so etwa (getippt un nicht getestet)
SQL-Code:
select
lieferant, gueltig_ab from ((Select first 1 lieferant, gueltig_ab from ARTIKEL_PREIS_EK_K where artikel_nr = :artikel_nr and gueltig_ab = CURRENT_DATE order by gueltig_ab desc) union (select lieferant, min(gueltig_ab) from ARTIKEL_PREIS_EK_K where artikel_nr = :artikel_nr and gueltig_ab > CURRENT_DATE) ) group by lieferant; |
AW: Hilfe bei Select Abfrage
Dashier ergibt den 1. Satz vor dem heutigen Datum
SQL-Code:
Wir benötigen alle Sätze aus ARTIKEL_PREIS_EK_K, deren gültig_ab >= diesem Datum ist:
select
first 1 lieferant, gueltig_ab from ARTIKEL_PREIS_EK_K where artikel_nr = :artikel_nr and gueltig_ab < CURRENT_DATE order by gueltig_ab desc
SQL-Code:
Ungetestet hingedaddelt.
select k.lieferant, k.gueltig_ab
from ARTIKEL_PREIS_EK_K k where k.artikel_nr = :artikel_nr and exists ( select 1 from ARTIKEL_PREIS_EK_K D where d.artikel_nr = :artikel_nr and d.gueltig_ab < CURRENT_DATE and k.lieferant = d.lieferant and k.gueltig_ab >= d.gueltig_ab ) group by k.lieferant, k.gueltig_ab |
AW: Hilfe bei Select Abfrage
Danke für die schnellen Antworten
Habe jetzt mal den Ansatz von Markus genommen: so kommt mein gewünschtes Ergebnis:
Code:
Select lieferant, gueltig_ab from ( select lieferant, max(gueltig_ab) as gueltig_ab from ARTIKEL_PREIS_EK_K where artikel_nr = :artikel_nr and gueltig_ab < CURRENT_DATE group by lieferant union Select lieferant, gueltig_ab from ARTIKEL_PREIS_EK_K where artikel_nr = :artikel_nr and gueltig_ab >= CURRENT_DATE group by lieferant,gueltig_ab ) order by lieferant,gueltig_ab |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz