Einzelnen Beitrag anzeigen

Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
675 Beiträge
 
Delphi 10.4 Sydney
 
#1

SELECT FIRST 1 im JOIN möglich ?

  Alt 14. Sep 2017, 18:33
Datenbank: Firebird • Version: 3.0 • Zugriff über: UniDAC
Mal ne Frage...

Ich habe eine Tablle "Cp_Fecha" wo ich zu einem Datum einen Preis in einer Lagerposition speichere.

Code:
CREATE TABLE CP_FECHA (
    ITEMID          INTEGER NOT NULL,           -- mein produkt
    LOCATION        CHAR(3) NOT NULL,           -- mein Lager
    FECHA           DATE NOT NULL,              -- Datum
    CP              NUMERIC(15,2) NOT NULL,     -- Mittel-Preis
    QTY_ACUM        FLOAT,
    TOTPARCIAL_ACUM FLOAT
);
Dabei kommt es aber zu Lücken, da man nur ein Register erstellt, wenn es zu einer Änderung kommt. Normalerweise frage ich das dann so ab:

Code:
SELECT FIRST 1 Cp FROM Cp_Fecha WHERE ItemId=:ItemId AND Location=:Loc AND Fecha <= :Fecha ORDER BY Fecha DESCENDING
Könnte man das in ein SELECT als JOIN einbauen oder nur als SubSelect ?
Also Sum Bsp:

Code:
SELECT IA.ItemId, IA.Item, Sum(IA.Qty), CF.CP
FROM ItemAct IA
LEFT JOIN Cp_Fecha CF ON (CP.ItemId=IA.ItemId AND CP.Location=IA.Location AND Fecha <= :Fecha) -- ich weiss, da fehlt was um nur 1 register zu bekommen
anstelle von :
Code:
SELECT IA.ItemId, IA.Item, Sum(IA.Qty),
       (SELECT FIRST 1 Cp FROM Cp_Fecha WHERE ItemId=:ItemId AND Location=:Loc AND Fecha <= :Fecha ORDER BY Fecha DESCENDING) CP
FROM ItemAct IA
Ist das möglich ?

Danke schonma
  Mit Zitat antworten Zitat