AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei Select Abfrage

Ein Thema von josef-b · begonnen am 18. Mai 2021 · letzter Beitrag vom 18. Mai 2021
Antwort Antwort
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#1

Hilfe bei Select Abfrage

  Alt 18. Mai 2021, 10:16
Datenbank: Firebird • Version: 2.5 • Zugriff über: Delphi
Ich habe eine bisher einfache sql-Abfrage

Code:

Select lieferant, gueltig_ab from ARTIKEL_PREIS_EK_K
 where artikel_nr = :artikel_nr
 group by lieferant, gueltig_ab
Das Ergebnis ist in dem Fall:

Code:

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
Ich möchte nun pro Lieferant den letzten Datensatz vor heutigem Datum und alle ab heute haben.

In diesem Fall wären das die letzten drei Sätze.

Ich habe überhaupt keinen Plan wie man das macht.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Hilfe bei Select Abfrage

  Alt 18. Mai 2021, 10:22
Hallo,
schau Dir mal Having an.
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Hilfe bei Select Abfrage

  Alt 18. Mai 2021, 10:26
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;
Markus Kinzler

Geändert von mkinzler (18. Mai 2021 um 10:33 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#4

AW: Hilfe bei Select Abfrage

  Alt 18. Mai 2021, 10:46
Dashier ergibt den 1. Satz vor dem heutigen Datum
SQL-Code:
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
Wir benötigen alle Sätze aus ARTIKEL_PREIS_EK_K, deren gültig_ab >= diesem Datum ist:
SQL-Code:
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
Ungetestet hingedaddelt.
  Mit Zitat antworten Zitat
josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Hilfe bei Select Abfrage

  Alt 18. Mai 2021, 11:06
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz