Ich validiere Firebird über Open-Access-Befehle. Für die Validierung, Ich benutze die gleichen Befehle für beide Firebird und Open Access (SQL) über die gleichen Daten und Schema. Wenn ich diese Abfrage auf SQL ausgeführt habe, funktioniert es. Im Falle von Gruppenabfragen zeigt es nicht die gewünschte Ausgabe an. Wie prüft Firebird eine korrelierte Abfrage?Keine Datensätze für vorhandene Daten
SELECT EMPNO,SAL
FROM EMP E
WHERE 1 = (SELECT MAX(DEPTNO)
FROM DEPT D
WHERE E.ENAME like '%AME%')
OR EMPNO = (SELECT MAX(DEPTNO)
FROM DEPT D
WHERE E.ENAME like (SELECT TOP 1 ENAME
FROM emp E1
WHERE E1.EMPNO=D.DEPTNO))
ORDER BY EMPNO;
Hier sind die Ausgaben für den offenen Zugang (SQL),
EMPNO SAL
-15 3000
-12 2000
-11 100500.55
-10 NULL
-9 1111.11
-8 -3000
-6 NULL
.........
.........
Rows selected = 27
Firebird,
EMPNO SAL
Rows selected = 0
Obwohl Firebird, Openacess (SQL) gleiche strukturierte Sprache verwendet, unterscheiden sich aber in den Ausgaben .
DDL der Abfrage,
CREATE TABLE EMP(EMPNO integer , ENAME varchar(32) , JOB varchar(32) , HIREDATE datetime , SAL float ,COMM real ,DEPTNO integer);
CREATE TABLE DEPT(DEPTNO integer, DNAME varchar(40), LOC varchar(40), DIVNO integer);
Daten für über DDL,
INSERT INTO EMP VALUES(101, 'NAME1', 'TITLE1', '1990-02-02 02:02:02', 100500.55, 2000.90, 1);
INSERT INTO EMP VALUES (102,'NAME2','TITLE2', '1958-02-02 02:02:02',2000.00, 20000.00, 1);
INSERT INTO EMP VALUES(103, 'NAME3', 'TITLE3', '1997-03-12 08:09:54', 3000.00, 1000.50, 2);
INSERT INTO EMP VALUES(104, 'NAME4', 'TITLE4', '1997-04-02 00:00:00', 1111.11, 2.22, 1);
INSERT INTO EMP VALUES(105, 'NAME5', 'TITLE5', '1997-06-12 08:09:54', 3000.00, 1000.50, 2);
INSERT INTO EMP VALUES(106, 'NAME6', 'TITLE6', '1997-06-12 02:02:02', 1111.11, 2.22, 1);
INSERT INTO DEPT (DEPTNO, DNAME, LOC, DIVNO) Values (1, 'Software', 'San Jose', 10);
INSERT INTO DEPT (DEPTNO, DNAME, LOC, DIVNO) Values (2, 'Sales', 'LA', 20);
INSERT INTO DEPT (DEPTNO, DNAME, LOC, DIVNO) Values (3, 'Marketing', 'LA', 20);
Bitte formatieren Sie die Abfrage so, dass sie lesbar ist (diese Abfrage ergibt für mich keinen Sinn BTW). Veröffentlichen Sie auch ein reproduzierbares Beispiel: Fügen Sie die DDL und ein Beispiel der Daten hinzu. Haben Sie überprüft, dass ein einfaches 'select * from emp 'irgendwelche Daten zurückgibt, und dass diese Unterabfragen die erwarteten Ergebnisse erzeugen, machen Sie, dass die äußere Abfrage irgendetwas erzeugt. –
Bitte geben Sie die DDL der beteiligten Tabellen und eine Stichprobe der Daten an und beschreiben Sie, was diese Abfrage tun soll, da sie für mich überhaupt keinen Sinn ergibt (abgesehen von der Tatsache, dass sie einen "token unknown" -Fehler enthält) Feuervogel). –
@MarkRotteveel Es müssen mehr als 15 Zeilen eingefügt werden. Wie kann ich dir das zeigen? – kvk30