オープンアクセスコマンドでfirebirdを検証しています。検証のために、 同じデータとスキーマで同じコマンドをFirebirdとオープンアクセス(SQL)の両方で使用します。 SQL上でこのクエリを実行したときに動作しています。グループクエリの場合は、目的の出力が表示されません。ファイヤーバードの相関クエリの評価方法ここで 既存のデータのレコードがありません
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;
は、
EMPNO SAL
-15 3000
-12 2000
-11 100500.55
-10 NULL
-9 1111.11
-8 -3000
-6 NULL
.........
.........
Rows selected = 27
Firebirdの、オープンアクセス(SQL)用の出力である火の鳥、Openacess(SQL)は、同じ構造化言語を使用していますが、出力が異なっていても
EMPNO SAL
Rows selected = 0
。
クエリのDDL、DDL上記のため
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);
データ、
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);
読み取り可能にするようにクエリをフォーマットしてください(そのクエリは私には意味がありません)。また、再現可能な例を投稿する:DDLとデータのサンプルを含める。単純な 'select * from emp'がデータを返すこと、そしてそれらのサブクエリが期待される結果を生成することを確認しましたか?外部クエリが何かを生成することを確認しましたか? –
関係するテーブルのDDLとデータのサンプルを提供してください。そして、このクエリが何をすべきかを記述してください。それは私には全く意味がありません(ただし、トークン不明のエラーFirebird)。 –
@ MarkRotteveel挿入する行が15以上あります。それをどのようにあなたに示すことができますか? – kvk30