Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
Delphi XE2 Enterprise
|
Re: Join über 3 Tabellen
5. Mär 2004, 10:38
ich habe mal eine stored proc auf interbase gemacht, mit der muesste es aber
jetzt gehen
Code:
CREATE PROCEDURE GET_ARTIKEL (
IN_ID_KUNDE INTEGER)
RETURNS (
OUT_NR INTEGER,
OUT_BEZ VARCHAR(30),
OUT_ID INTEGER,
OUT_PREIS NUMERIC(9,2))
AS
/* HILFSVARIABLEN FUER ERSTE ABFRAGE */
DECLARE VARIABLE OUT_HNR INTEGER;
DECLARE VARIABLE OUT_HBEZ VARCHAR(30);
DECLARE VARIABLE OUT_HID INTEGER;
DECLARE VARIABLE OUT_HPREIS NUMERIC(9,2);
BEGIN
FOR SELECT ART.NR,ART.BEZ, SP.ID, SP.VP
FROM ART , SP
WHERE (ART.ID=SP.ID_ART ) AND
SP.ID_KUNDE = :IN_ID_KUNDE
INTO :OUT_HNR, :OUT_HBEZ, :OUT_HID, :OUT_HPREIS
DO
/* ist der preis <> 0 dann gebe hilfsvariablen aus */
IF (OUT_HPREIS <> 0) THEN
BEGIN
OUT_NR = :OUT_HNR;
OUT_BEZ = :OUT_HBEZ;
OUT_ID = :OUT_HID;
OUT_PREIS = :OUT_HPREIS;
SUSPEND;
END
ELSE
BEGIN
/* preis offensichtlich 0 -> hole preis von artpg direkt in ausgabevariable */
FOR SELECT ART.NR,ART.BEZ, ARTPG.ID, ARTPG.PG
FROM ART, ARTPG
WHERE (ART.ID = ARTPG.ID_ART) AND ART.NR = :OUT_HNR /* das ist die art.nr bon oben */
INTO :OUT_NR, :OUT_BEZ, :OUT_ID, :OUT_PREIS
DO
SUSPEND;
END
END
|
|
Zitat
|