Hallo Leute,

folgendes Problem wurde an mich heran getragen, konnte aber keine Erklärung dafür finden.

CREATE VIEW qtemp/abc AS SELECT DISTINCT
f2prod, f2fmg1, f2fmg2, f2fmg3, f2fmg4, f2fme1, f2fme2, f2fme3,
f2fme4, f2vkme, f2mein, f2mge1, f2mei1, f2mge2, f2mei2, f2mge3,
f2mei3, f2mge4, f2mei4,
DEC( (SELECT SUM(nemge0) FROM mne
WHERE nephas = '1' AND nestat = '1' AND neprod = a.f2prod
AND nelort = a.f2lort AND nemge1 = a.f2fmg1
AND nemge2 = a.f2fmg2 AND nemge3 = a.f2fmg3
AND nemge4 = a.f2fmg4), 15, 2) AS lbestand,
DEC( (SELECT SUM(jhbdmg - jhgymg) FROM pjhm1
WHERE jhvbnr = a.f2prod AND jhlort = a.f2lort
AND jhfmg1 = a.f2fmg1 AND jhfmg2 = a.f2fmg2
AND jhfmg3 = a.f2fmg3 AND jhfmg4 = a.f2fmg4), 15, 2)
AS abgang
FROM pf2m1 a WHERE f2kate = 'CRD' and f2prod = '11050'

1. Bei einfachem Aufruf (ohne Satznr.) : SELECT * FROM abc -> 3 Sätze

Produkt| F-Mge1| F-Mge2| Menge-3|ME3|Menge-4|ME4|LBest.|ABGANG
11050 | 42,000 | 80,000| 130,000|DM | 45,000|FLG| ---- | ----
11050 |152,000 |120,000| 130,000|DM | 45,000|FLG| ---- | ----
11050 |202,000 |120,000| 130,000|DM | 45,000|FLG| ---- | ----
******** Datenende ********

2. mit Satznummer: SELECT RRN(abc), abc.* FROM abc -> 3 Sätze (wie oben)

RRN|Produkt|F-Mge1 |F-Mge2
618| 11050 | 42,000| 80,000
608| 11050 |152,000|120,000
603| 11050 |202,000|120,000

Füge ich obiger View noch ein weiteres Feld hinzu, welches aus einer 3. Datei summiert wird:

, DEC( (SELECT SUM(vo3011) FROM vo3m1
WHERE vo3026 <> 'END' AND vo3092 <> 'J' AND vo3008 = a.f2prod
AND vo3041 = a.f2fmg1 AND vo3042 = a.f2fmg2
AND vo3039 = a.f2fmg3 AND vo3040 = a.f2fmg4), 15, 2) AS zugang

und rufe obige Selects auf, erhalte ich
1. ohne Satznummer: wie oben -> 3 Sätze
2. mit Satznummer : siehe unten

RRN |Produkt| F-Mge1| F-Mge2|LBest.|ABGANG|ZUGANG
603 | 11050 |202,000|120,000| ---- | ---- | ----
604 | 11050 |202,000|120,000| ---- | ---- | ----
605 | 11050 |202,000|120,000| ---- | ---- | ----
608 | 11050 |152,000|120,000| ---- | ---- | ----
609 | 11050 |152,000|120,000| ---- | ---- | ----
610 | 11050 |152,000|120,000| ---- | ---- | ----
618 | 11050 | 42,000| 80,000| ---- | ---- | ----
620 | 11050 | 42,000| 80,000| ---- | ---- | ----

Dies sind alle Sätze aus der Basis-Datei, die vorher durch das DISTINCT zusammengelegt wurden. Letzteres Resultat finde ich eigentlich gar nicht so verwunderlich. Was mich irritiert, sind die Abfragen, die nur 3 Sätze bringen. Sogar incl. einer konkreten Satznummer (in allen Fällen übrigens niedrigste Satznr.), obwohl ja auch hier bereits mehrere Sätze zusammengeflossen sind. Ist das lediglich Zufall?
Wieso reagiert die View-Abfrage mit Satznummer plötzlich unterschiedlich, nachdem die 3. Dateisumme dazugekommen ist?
Vielleicht liegt es ja auch einfach daran, dass im DISTINCT-Fall eine Satznummer eigentlich keinen Sinn macht und SQL deshalb nicht so recht damit umgehen kann?!

Für eine Erklärung wäre ich Euch sehr dankbar.

Viele Grüße, Akku