2

先週、Microsoft Query でのサブクエリの使用に関する質問を投稿しました。その場合の問題は解決されませんでしたが、以前の場合よりもはるかに基本的な問題であることがわかりました。

Microsoft Query (Excel 2010 から) で単純なクエリを実行しようとして ODBC 経由で Informix データベースに接続していますが、サブクエリの構文を正しく取得しようとして多くの問題を抱えています。MSQuery が Informix/ODBC ソースに関連するいくつかの特異性に引っかかっているような気がします。これを考える理由は、Excel スプレッドシートをデータソースとして使用して非常に単純なサブクエリを実行すると、次の構文が機能するためです。

SELECT * FROM
(
SELECT x0.field1, x0.field2
FROM `C:\USERS\NAME\DIRECTORY\Test.xlsx`.`Sheet1$` x0
)

ただし、Informix データベースのサブクエリを使用して同じ非常に単純なクエリを試すと、

SELECT * FROM
(
SELECT x0.id, x0.creation_date
FROM coastal.waybill x0
)

エラーが"Could not add the table '(select'."表示される 推測できるのは、MSQuery で使用する構文をデータ ソースに合わせて調整する必要があるということだけです。ただし、 FROM 句のサブクエリの Informix の構文を調べたところ、さらに混乱しました。その例は次のとおりであるため、その構文に従ってティーを作成したように見えるためです。

SELECT LIMIT 1 * FROM 
   (SELECT c.customer_num, c.lname, c.company, 
           c.phone, u.call_dtime, u.call_descr
                 FROM customer c, cust_calls u
                 WHERE c.customer_num = u.customer_num
    ORDER BY u.call_dtime DESC);

私は完全に迷っています。どんな援助でも大歓迎です!

4

1 に答える 1

1

次のようなテーブルエイリアスを試しましたか:

SELECT a.* FROM
(
SELECT x0.id, x0.creation_date
FROM coastal.waybill x0
) a

以前は Oracle データベースで MS Query をよく使用していましたが、サブクエリはエイリアスを必要としませんでした。その後、それらを必要とする MS SQL に移行しました。

于 2012-11-29T22:41:38.503 に答える