在SQL中的Where条件中使用ORDERBY

时间:2016-05-26 05:07:44

标签: mysql sql

Select P.SecondName__c,P.FirstName__c, P.TransDate__c,  From PurchaseDE P
Where P.PubNbr__c = (Select distinct P.PubNbr__c from PurchaseDE P                                        
ORDERBY P.TransDate__c LIMIT1
 ) 

使用上述SQL查询时,我收到错误,在子查询中不支持OrderBy。 我们的想法是根据交易日期(P.TransDate__c)提取出版物No(P.PubNbr__c),将为每个出版物选择最后一个交易日期No P.PubNbr__c)。如何实现上述功能。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

根据您的问题,我认为您希望在每个PurchaseDE

的最后一个交易日期中选择PubNbr__c记录

如果是这种情况,您可以使用:

Select 
    P.PubNbr__c, P.SecondName__c,P.FirstName__c, P.TransDate__c
From 
    PurchaseDE P
inner join
    (select 
        PubNbr__c, max(TransDate__c) last_TransDate 
    from
        PurchaseDE 
    group by
        PubNbr__c
    ) as lp
on
    lp.PubNbr__c = P.PubNbr__c
    and P.TransDate__c = lp.last_TransDate;

如果您只需要发布号码和上次交易日期,那么只需使用

即可
select 
    PubNbr__c, max(TransDate__c) last_TransDate 
from
    PurchaseDE 
group by
    PubNbr__c;