您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

SQL组-限制

SQL组-限制

SELECT C.CompanyName,H.*
FROM Companies C
JOIN CompanyTypes CT ON C.fkTypeID = CT.ID
INNER JOIN (
    SELECT   sCH.*
    FROM     CompanyHistory sCH    
    ORDER BY sCH.DATE DESC                   -- order desc so we can count
) H ON H.fkCompanyID = C.ID 
WHERE CT.Type = 'bookstore'
  and 3>(select count(*)                     -- at most 2 prevIoUs occurances
       from CompanyHistory ich
       where ich.fkCompanyID=C.ID            -- same company
          and datediff(d,ich.date,H.date)<0) -- but dates less than the row's date

基本上,我是在计算每家公司的前几行,并在我们超过2时删除行(+当前行为3)。您需要CompanyHistory按日期desc对表进行排序才能使其正常工作。

您可能需要datediff用适合您的sql风格的函数替换,我只真正知道sql Server。

SQLServer 2022/1/1 18:52:38 有320人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶