如何在sybase ase中选择序列的序列工作?

问题描述 投票:0回答:2
.

不工作:

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

单独选择的作品,但不在derdivedtabled.

中工作。

工作:
SELECT
    TOP 10 product AS b_fld_1
FROM
    bi_sales
GROUP BY
    product
ORDER BY
    sum(sales) DESC

我需要使用带有顺序和顶部功能的派生表运行SQL。因为我使用开发软件来生成PHP代码,所以这是一个RAD。因此,用户应告知您自己的SQL,可以简单或复杂。 想象“ SEL1”可能是另一个与Join的SQL复合体,Case ...

,我们将用户SQL视为“ SEL1”。我们在“ SEL2”中使用最高顺序回复,然后在“ SEL1”和“ SEL2”中使用比较连接进行新的外部选择。 Sybase不起作用:

SELECT column FROM ( SELECT top 10 column2 FROM table ORDER BY column2 )

在MS SQL Server,MySQL,Oracle,MS Access,PostgreSQL,SQLite,Firebird和Informix上的同一语句工作。 提前感谢您的答复!

在您的情况下,也许这可以做您想要的:

SELECT TOP 10 product AS b_fld_1, SUM(sales), COUNT(*) FROM bi_sales GROUP BY product ORDER BY sum(sales) DESC;

它更简单。
    

我想,您应该在最外部查询

移动订单。

SELECT A.column FROM ( SELECT top 10 column2 FROM table ) A ORDER BY A.column2

sql sybase sap-ase derived-table sybase-ase15
2个回答
0
投票

据我所知,在T-SQL(最有可能的Sybase)中,您不能在子问题中使用子句,派生表和视图,除非使用顶部N 例如,以下查询将导致t-sql中的错误消息:

选择顶级1 p.firstname,p.lastname,(从教育中选择e.title e
其中p.id = e.personid Order by e.startdate desc)'lasteducationlevel'
来自人P
nover将成功执行此操作:

SelectP.Firstname,P.LastName,(从教育中选择顶级1 e.title e 其中p.id = e.personid Order by e.startdate desc)'lasteducationlevel' 来自人P

0
投票

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.