私はこのクエリがどのように実行されたのだろうかと思っていた:ORDER BYのSELECT TOPとDERIVED TABLEは、どのようにSybase ASEで動作しますか?
私は、エラーメッセージ "派生テーブルで許可されていないORDER BYCLUEがあります。 TOPを使用して同じです。個別
SELECT
count(*),
sum(a_metric_1),
a_fld_1
FROM
(
SELECT
sales AS a_metric_1,
product AS a_fld_1
FROM
bi_sales
) sel1
INNER JOIN (
SELECT
TOP 10 product AS b_fld_1
FROM
bi_sales
GROUP BY
product
ORDER BY
sum(sales) DESC
) sel2 ON sel1.a_fld_1 = sel2.b_fld_1
GROUP BY
a_fld_1
ORDER BY
a_fld_1
SELECTの仕事を、しかし派生テーブルでは動作しません:
は機能しません。
はWORK:
SELECT
TOP 10 product AS b_fld_1
FROM
bi_sales
GROUP BY
product
ORDER BY
sum(sales) DESC
私は、ORDER BYとTOPの機能と派生テーブルを使用してSQLを実行する必要があります。 PHPコードを生成するための開発ソフトウェアを使用しているため、RADです。したがって、ユーザーは自分のSQLに通知する必要があります、単純または複雑にすることができます。
はの、ケースを登録しようと別のSQL複雑である「SEL1」...
はこのように、私たちは「SEL1」などのユーザーのSQLを扱うことを想像してみてください。 TOP ORDER BYで "sel2"を使って返信し、 "sel1"と "sel2"の比較JOINで新しい外部SELECTを作成します。 Sybaseのオン
は動作しません:
SELECT column FROM (SELECT top 10 column2 FROM table ORDER BY column2)
MS SQL Serverのは、MySQLやOracle、MSアクセス、PostgreSQLの、SQLiteの、火の鳥とInformixの同じ文の仕事。
ご返信いただきありがとうございます!それははるかに簡単です
SELECT TOP 10 product AS b_fld_1, SUM(sales), COUNT(*)
FROM bi_sales
GROUP BY product
ORDER BY sum(sales) DESC;
:あなたのケースでは
どういうところですか? – artm