Hi,

habe unten angeführten SQL CREATE VIEW. Jetzt habe ich leider das Problem das eine select * from cmsms1/zkna2_view (also auf den 'fertigen' View) einen

SQL0811 Fehler bringt, der sagt "Nachricht . . . : Ergebnis der Anweisung enthält mehr als eine Zeile"

Habe herausgefunden das die unteren Selects auf die Tabellen ADR2 und ADR6 nicht eindeutig sind und (selten aber doch) mehr als EINE Zeile bringen als Ergebnis.

Wie kann ich die Unterabfragen auf ADR2 und ADR6 so gestalten das nur EINE Zeile ausgegeben wird, nämlich die ERSTE die den Selektionskriterien entspricht ??


Code:
 
CREATE VIEW cmsms1/zkna2_view AS ( 
select MANDT, KUNNR, NAME1, NAME2, STRAS, ORT01, PSTLZ, LAND1, 
SORTL, VALUE(TEL1, '') AS TEL1, 
VALUE(TEL2, '') AS TEL2, 
VALUE(MOBIL1, '') AS MOBIL1, 
VALUE(MOBIL2, '') AS MOBIL2, 
VALUE(EMAIL1,'') AS EMAIL1, 
VALUE(EMAIL2,'') AS EMAIL2, STCEG FROM ( 
SELECT A.kunnr, A.NAME1, 
(SELECT tel_number FROM r3p02data/adr2 
WHERE addrnumber=A.adrnr and consnumber='001' ) AS TEL1, 
(SELECT tel_number FROM r3p02data/adr2 
WHERE addrnumber=A.adrnr and consnumber='002' ) AS TEL2, 
(SELECT tel_number FROM r3p02data/adr2 
WHERE addrnumber=A.adrnr and consnumber='003' ) AS MOBIL1, 
(SELECT tel_number FROM r3p02data/adr2 
WHERE addrnumber=A.adrnr and consnumber='004' ) AS MOBIL2, 
(SELECT smtp_addr FROM r3p02data/adr6 
WHERE addrnumber=A.adrnr and consnumber='001' ) AS EMAIL1, 
(SELECT smtp_addr FROM r3p02data/adr6 
WHERE addrnumber=A.adrnr and consnumber='002' ) AS EMAIL2 
FROM r3p02data/kna1 a ) as A where kunnr<>'0000062871' )