回答

收藏

SQL组-限制

技术问答 技术问答 254 人阅读 | 0 人回复 | 2023-09-12

有时找到沟通“问题”的最佳方法与找到解决方案一样困难……大声笑,但是这里…
" D, O2 [; k: \3 G; }" g$ l) p我有一个与公司相关的表,我有一个与每个公司相关的历史记录的相关表…我想返回一个查询,其中包含每个公司的最后3个“历史”条目的记录集…
) i0 @. l7 K: A$ v6 f因此记录集将看起来像这样…
9 c# h! j& y% V0 x5 ~& O6 q% Ucompany A
- p$ g2 _0 k! A' a0 Y% }  history Az0 {" A! T$ h  A  F, }
  history Ay
' `# C1 M- g0 G  history Ax9 X! V. j2 e1 L
company B
4 C7 o- B- X2 i3 Y5 a; k, S  history Bz
( h- C+ p+ P' O: l8 o' S+ K# ]  history By
, M$ e" @3 j- c( B8 E% |0 g( U1 @  history Bx( W  l0 A: N" O: s1 I
company C3 Z8 g! f. _3 x* f$ h
  history Cz
# v( d6 d3 T6 I( I  history Cy# Q7 b, A% k6 b: R6 x5 i4 p% ?/ X
  history Cx
# l  K0 y+ N$ \. T: Q5 @我遇到的问题是如果我限制3-连接在那儿,我只得到所有记录的最后3条记录,而不是每个公司的最后3条记录…
- F$ ^7 O3 n( O: e这是我上次尝试过的方法-但这只是撤回一家公司的3条记录..就是这样…(IBM DB2 9-但唯一会影响的是语法限制为3 ..)% \( l% n) Z3 W
SELECT
7 A( T3 Z( q9 @$ B   C.CompanyName   
4 t% I& i% k( o8 ]  ,H.*
- `6 W' P  O6 n$ U* n* W7 jFROM Companies C, p( O. K, o/ {# `4 U
JOIN CompanyTypes CT ON C.fkTypeID = CT.ID
1 O3 e' ?# C& R/ ?# I1 ^INNER JOIN (
/ A$ Z" }7 D& u$ v/ b. y2 ]    SELECT   sCH.*
1 y: W+ `" Q4 f! g  O2 m! Y    FROM     CompanyHistory sCH
: m) j6 {' t4 N    ORDER BY sCH.DATE DESC 6 i  Q( V% v1 P$ n
    FETCH FIRST 3 ROWS ONLY: o" g  S& |3 g' Z# a2 @
) H ON H.fkCompanyID = C.ID/ R% q$ H& w5 F2 ?: h: a, U8 x
  T) C4 |* o0 P- Z
WHERE CT.Type = 'bookstore'
. x0 G  B' F5 f5 V1 E我究竟做错了什么?7 b. ~8 Y. p7 a5 `
               
' T! @  P* ^' @& b' d% W解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则