Hallo miteinander
Ich bin absoluter Änfänger was Datenbanken angeht und habe deshalb mal eine Frage.
Wo muss ich die Row Number Function einsetzen bei einem Query:
Hier mal mein Query in verkürzter Form :
SELECT
DISTINCT
(RELFIRMA.FIRMANR),
RELFIRMA.FIRMANR,
RELANSCH.STRASSE,
RELANSCH.ORT,
RELANSCH.LAND,
RELANSCH.STAAT,
RELFIRMA.NAME,
RELZTLB.KTXT Lieferbedingungen,
RELZTSPE.KTXT \"Spedition/Versand\",
RELZTZB.KTXT Zahlungsbedingungen,
reltext.betreff
FROM (INFOR.RELFIRMA RELFIRMA
left outer join infor.reltext reltext on
relfirma.textnr = reltext.textnr
INNER JOIN INFOR.RELADRESSE RELADRESSE
ON (RELFIRMA.FIRMANR = RELADRESSE.FIRMANR)
inner JOIN INFOR.RELACP RELACP
ON (RELFIRMA.FIRMANR = RELACP.MNR)
inner join INFOR.RELANSCH RELANSCH
ON (RELADRESSE.ANSCHRIFTNR = RELANSCH.ANSCHRIFTNR))
left outer JOIN INFOR.RELZTLB RELZTLB
ON (RELACP.TEXT0 = RELZTLB.ZTKEY)
left outer JOIN INFOR.RELZTSPE RELZTSPE
ON (RELACP.TEXT1 = RELZTSPE.ZTKEY)
left outer JOIN INFOR.RELZTZB RELZTZB
ON (RELACP.ZBED = RELZTZB.ZTKEY)
WHERE RELFIRMA.VERWENDUNG1 = '1'
AND RELANSCH.VERWENDUNG1 = '1'
AND RELFIRMA.FIRMANR NOT LIKE 'I%'
AND RELZTSPE.Sprache = 'de'
AND RELZTZB.Sprache = 'de'
AND RELZTLB.Sprache = 'de'"
Mein Anliegen bei zwei Tabellen ( immer für einen Datensatz.. also es darf keinen doppelten Datensatz mit 2 Werten zB. für RELANSCH.VERWENDUNG1 geben )
AND RELANSCH.VERWENDUNG1 = '1'
Ich will das er wenn er den Wert 1 in der Tabelle findet diesen nimmt wenn er ihn aber nicht findet, soll er den nächsthöheren nehmen.
AND RELZTSPE.Sprache = 'de'
AND RELZTZB.Sprache = 'de'
AND RELZTLB.Sprache = 'de'"
Hier soll er den Wert 'de' finden wenn er vorhanden ist ansonsten 'us'.
In einem anderen Forum hat man mir gesagt, das geht mit der 'Function rownum bloss habe ich keine Ahnung wie oder wo oder an welche Stelle ich diese Funktion setzen müßte.
Wäre dankbar wenn mir da jemand helfen könnte.
grüße john
Ich bin absoluter Änfänger was Datenbanken angeht und habe deshalb mal eine Frage.
Wo muss ich die Row Number Function einsetzen bei einem Query:
Hier mal mein Query in verkürzter Form :
SELECT
DISTINCT
(RELFIRMA.FIRMANR),
RELFIRMA.FIRMANR,
RELANSCH.STRASSE,
RELANSCH.ORT,
RELANSCH.LAND,
RELANSCH.STAAT,
RELFIRMA.NAME,
RELZTLB.KTXT Lieferbedingungen,
RELZTSPE.KTXT \"Spedition/Versand\",
RELZTZB.KTXT Zahlungsbedingungen,
reltext.betreff
FROM (INFOR.RELFIRMA RELFIRMA
left outer join infor.reltext reltext on
relfirma.textnr = reltext.textnr
INNER JOIN INFOR.RELADRESSE RELADRESSE
ON (RELFIRMA.FIRMANR = RELADRESSE.FIRMANR)
inner JOIN INFOR.RELACP RELACP
ON (RELFIRMA.FIRMANR = RELACP.MNR)
inner join INFOR.RELANSCH RELANSCH
ON (RELADRESSE.ANSCHRIFTNR = RELANSCH.ANSCHRIFTNR))
left outer JOIN INFOR.RELZTLB RELZTLB
ON (RELACP.TEXT0 = RELZTLB.ZTKEY)
left outer JOIN INFOR.RELZTSPE RELZTSPE
ON (RELACP.TEXT1 = RELZTSPE.ZTKEY)
left outer JOIN INFOR.RELZTZB RELZTZB
ON (RELACP.ZBED = RELZTZB.ZTKEY)
WHERE RELFIRMA.VERWENDUNG1 = '1'
AND RELANSCH.VERWENDUNG1 = '1'
AND RELFIRMA.FIRMANR NOT LIKE 'I%'
AND RELZTSPE.Sprache = 'de'
AND RELZTZB.Sprache = 'de'
AND RELZTLB.Sprache = 'de'"
Mein Anliegen bei zwei Tabellen ( immer für einen Datensatz.. also es darf keinen doppelten Datensatz mit 2 Werten zB. für RELANSCH.VERWENDUNG1 geben )
AND RELANSCH.VERWENDUNG1 = '1'
Ich will das er wenn er den Wert 1 in der Tabelle findet diesen nimmt wenn er ihn aber nicht findet, soll er den nächsthöheren nehmen.
AND RELZTSPE.Sprache = 'de'
AND RELZTZB.Sprache = 'de'
AND RELZTLB.Sprache = 'de'"
Hier soll er den Wert 'de' finden wenn er vorhanden ist ansonsten 'us'.
In einem anderen Forum hat man mir gesagt, das geht mit der 'Function rownum bloss habe ich keine Ahnung wie oder wo oder an welche Stelle ich diese Funktion setzen müßte.
Wäre dankbar wenn mir da jemand helfen könnte.
grüße john
Zuletzt bearbeitet: