AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu JOIN

Ein Thema von harfes · begonnen am 26. Jan 2017 · letzter Beitrag vom 27. Jan 2017
Antwort Antwort
Seite 2 von 2     12   
jobo

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

AW: Frage zu JOIN

  Alt 26. Jan 2017, 14:45
das soll bedeuten, gib die gerade aktuelle Mengeneinheit aus (bei Ballen ist Stk null usw.)
Richtig geraten?
Ich glaube nicht.
Die aufgeführten Einheiten sind alle unterschiedlicher Art, also meinetwegen Minbesteinheit = Paletten.
Bedeutet man kann nur palletenweise bestellen.
Lagerbesteinheit = Stück

usw...
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Frage zu JOIN

  Alt 26. Jan 2017, 15:51
war ein Vorschlag, jetzt sollte sich vllt. der TE äußern.
(ich hatte heute eine Recherchenanfrage von zwei Stellen beide haben laut genickt bei der schriftlichen Formulierung. Dann hab ich nachgefragt ob denn auch das gemeint sei, A:Ja B:Nein )

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
199 Beiträge
 
Delphi 12 Athens
 
#13

AW: Frage zu JOIN

  Alt 27. Jan 2017, 08:42
Ja, jedes Feld, zu der eine Einheit gehört, kann eine andere Einheit haben (Verpackungseinheit=1 Karton, Verbrauchseinheit=1 Stück, etc.) - daher muss ich die Einheit immer wieder abfragen. Meine (unelegante, aber funktionierende) Lösung:
Delphi-Quellcode:
with DM1.DataModule1.IBCArtQuery do
    begin
        Close;
        SQL.Clear;
        SQL.Add('select A.*,E.EINHEIT as EE,F.EINHEIT as EF,G.EINHEIT as EG,H.EINHEIT as EH,W.WARENGRUPPE as WG,L.FIRMA,L.KREDITORENNR,Z.BEZEICHNUNG as LP ');
        SQL.Add('from ARTIKEL A ');
        SQL.Add('left outer join EINHEITDB E on A.VERPEINHEIT=E.EID ');
        SQL.Add('left outer join EINHEITDB F on A.VERBRAUEINHEIT=F.EID ');
        SQL.Add('left outer join EINHEITDB G on A.LAGBESTEINHEIT=G.EID ');
        SQL.Add('left outer join EINHEITDB H on A.MINBESTEINHEIT=H.EID ');
        SQL.Add('left outer join WARENGRUPPEDB W on A.WARENGRUPPE=W.WID ');
        SQL.Add('left outer join LIEFERANT L on A.LIEFERANT1=L.LID ');
        SQL.Add('left outer join LAGERPLATZ Z on A.LAGERPLATZID=Z.LPID ');
        ExecSQL;
    end;
Nochmal: mir ging es darum, eine elegantere Abfrage zu generieren...aber offensichtlich muss das wohl so gehen (und tut es ja auch!). Danke für euren Input!!!

Hartmut
Hartmut

Geändert von TBx (27. Jan 2017 um 09:00 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Frage zu JOIN

  Alt 27. Jan 2017, 20:04
Wie wäre es denn hiermit:
SQL-Code:
select A.*,E.EINHEIT,W.WARENGRUPPE as WG,L.FIRMA,L.KREDITORENNR,Z.BEZEICHNUNG as LP
from ARTIKEL A
     left outer join WARENGRUPPEDB W on A.WARENGRUPPE=W.WID
     left outer join LIEFERANT L on A.LIEFERANT1=L.LID
     left outer join LAGERPLATZ Z on A.LAGERPLATZID=Z.LPID
     left outer join EINHEITDB E on A.VERPEINHEIT=E.EID
union
select A.*,F.EINHEIT ,W.WARENGRUPPE as WG,L.FIRMA,L.KREDITORENNR,Z.BEZEICHNUNG as LP
from ARTIKEL A
     left outer join WARENGRUPPEDB W on A.WARENGRUPPE=W.WID
     left outer join LIEFERANT L on A.LIEFERANT1=L.LID
     left outer join LAGERPLATZ Z on A.LAGERPLATZID=Z.LPID
     left outer join EINHEITDB F on A.VERBRAUEINHEIT=F.EID
union
select A.*,G.EINHEIT,W.WARENGRUPPE as WG,L.FIRMA,L.KREDITORENNR,Z.BEZEICHNUNG as LP
from ARTIKEL A
     left outer join WARENGRUPPEDB W on A.WARENGRUPPE=W.WID
     left outer join LIEFERANT L on A.LIEFERANT1=L.LID
     left outer join LAGERPLATZ Z on A.LAGERPLATZID=Z.LPID
     left outer join EINHEITDB G on A.LAGBESTEINHEIT=G.EID
union
select A.*,H.EINHEIT,W.WARENGRUPPE as WG,L.FIRMA,L.KREDITORENNR,Z.BEZEICHNUNG as LP
from ARTIKEL A
     left outer join WARENGRUPPEDB W on A.WARENGRUPPE=W.WID
     left outer join LIEFERANT L on A.LIEFERANT1=L.LID
     left outer join LAGERPLATZ Z on A.LAGERPLATZID=Z.LPID
     left outer join EINHEITDB H on A.MINBESTEINHEIT=H.EID
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (27. Jan 2017 um 20:05 Uhr) Grund: Fehler bei CnP
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:42 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