AGB  ·  Datenschutz  ·  Impressum  







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

FB: Hilfe bei Join

Ein Thema von hoika · begonnen am 4. Dez 2009 · letzter Beitrag vom 5. Dez 2009
 
hoika

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

FB: Hilfe bei Join

  Alt 4. Dez 2009, 07:59
Datenbank: Firebird • Version: 2.1 • Zugriff über: egal
Hallo #,

Folgende 2 Tabellen habe ich

Tab1 "Customer"
Id Integer
Name Varchar(X)

Tab2 "Customer_ADC"
Id Integer (PrimKey)
CustomerId Integer -> Ref Customer.Id
StartDate Date
EndDate Date


Die ASC enthält pro Kunde mehrere Einträge.
Ich brauche jetzt den aktuellen Eintrag pro Kunde.
Aktuell heisst EndDate>=:Heute, das StartDate lassen wir mal aussen vor

Sowas mache ich bisher immer mit einer SP etwa so (Pseudocode)
SQL-Code:
ForEach Customer
  Select First 1 ADC.* From ADC
  Where
    (ADC.CustomerId=Customer.Id)
    (EndDate>=:CheckDate)
  Order by EndDateDesc
Wie bekomme ich das mit einer SQL-Abfrage raus ?
Ob das Join oder Left Join ist, ist mir egal

Das es etwa 2000 Customer-Einträge sind,
sollte möglichst keine SubQuery drin sein.


Hm.
Mein SP sieht jetzt erst mal so aus.

SQL-Code:
CREATE PROCEDURE CUSTOMERASC_GETCURRENTASC (
    THECHECKDATE DATE)
RETURNS (
    Customer_Id INTEGER,
    ASC_Id INTEGER,
    ASC_StartDate DATE,
    ASC_EndDate DATE)
AS
begin
  For Select Customer.Id From Customer
  Join Customer_ASC On Customer_ASC.CustomerId=Customer.Id
  Into :Customer_Id do
  begin
    ASC_Id = NULL;
    ASC_StartDate = NULL;
    ASC_EndDate = NULL;

    Select First 1 Id,StartDate,EndDate
    From Customer_ASC
    Where
      (Customer_ASC.CustomerId=:Customer_Id) And
      (Customer_ASC.EndDate>=:TheCheckDate)
    Order By Customer_ASC.EndDate Desc
      Into :ASC_Id,:ASC_StartDate,:ASC_EndDate;

    if (ASC_Id Is Not NUll) then
    begin
      Suspend;
    end
  end /* Fro Select  */
end


Danke


Heiko
Heiko
  Mit Zitat antworten Zitat
 


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 19:35 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