AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

union auf eine Spalte

Ein Thema von Ykcim · begonnen am 21. Mär 2019 · letzter Beitrag vom 21. Mär 2019
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: union auf eine Spalte

  Alt 21. Mär 2019, 12:26
Also ich habe ehrlich gesagt nicht ganz verstanden, wofür Du bei dem gezeigten Statement beide Quellen brauchst (inhaltlich).

Wieso nimmst Du nicht alles aus dem Bestand und bei vorhandenen Kundenanfragen diese dazu? (Was auch immer davon benötigt wird)

Union ist für Deine Zwecke nicht geeignet. Es wird allgemein für das aneinanderfügen von Daten aus unterschiedlichen Quellen verwendet. Und es eliminiert nur "beiläufig", weil es kein "union all" ist.

Wenn Du aus den gleichen Tabellen Daten mit verschiedenen Kriterien abfragen möchtest, dann nimmst Du eine OR Verknüpfung in die WHERE Clause auf.
Gruß, Jo
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: union auf eine Spalte

  Alt 21. Mär 2019, 12:27
Wie sieht die Beziehung der 3. Tabelle zu den beiden anderen aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: union auf eine Spalte

  Alt 21. Mär 2019, 12:42
Man könnte auch einen anderen (Full Outer?) Join nehmen oder in der Bedingung sowas ala:
where k.Lieferdatum<Date_Add(now(), interval 1000 day) or k.Lieferdatum is null .

Dann müsste man aber auch statt k.ArtikelNr sinngemäß schreiben if k.ArtikelNr is null then l.ArtikelNr else k.ArtikelNr end
Ralph
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
856 Beiträge
 
Delphi 12 Athens
 
#4

AW: union auf eine Spalte

  Alt 21. Mär 2019, 13:26
Mein Problem war, dass mir Ergebnisse fehlten, wenn keine Kundenbedarf vorhanden, aber Lagerbestand.

Zitat:
where k.Lieferdatum<Date_Add(now(), interval 1000 day) or k.Lieferdatum is null .
So etwas hatte ich schon getestet, aber leider ohne Erfolg.

Zitat:
Wieso nimmst Du nicht alles aus dem Bestand und bei vorhandenen Kundenanfragen diese dazu? (Was auch immer davon benötigt wird)
In der Tabelle mit den Kundenbedarfen sind sehr viel mehr Datensätze, weil es viele Bedarfe eines Artikels zu unterschiedlichen Zeiten gibt. Leider habe ich kein Kriterium für ein Group by in den Kundenbedarfen...

Zitat:
Wie sieht die Beziehung der 3. Tabelle zu den beiden anderen aus?
Ich habe an dieser Stelle nur nur zwei Tabellen... KdBedarf und LBestand. Im UNION habe ich noch einmal den LBestand gesamt abgefragt...

Zitat:
where not exists (select 1 from KdBedarf x where z.ArtikelNr = x.ArtikelNr)
Das werde ich wohl nochmal ausprobieren, ist aber sehr ähnlich dem, was ich bereits probiert habe.

Aktuell bin ich das Problem umgangen. Die Daten werden in einer Function verarbeitet und die habe ich so gebaut, dass die doppelten Einträgen nicht stören.

Vielen Dank!!!
Patrick
Patrick
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 15:09 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-2025 by Thomas Breitkreuz