【问题标题】:dynamic sql getting record in every id动态 sql 在每个 id 中获取记录
【发布时间】:2014-07-29 19:19:06
【问题描述】:

说我有这个记录

id 借方贷方余额 001 100 0 100 001 200 0 300 001 0 100 200 002 50 0 50 002 100 0 150 002 0 200 -50 003 50 0 50 003 500 0 550 003 0 100 450

现在我想要发生的是我想获取记录中每个 id 的每 2 条记录,它将如下所示:

id 借方贷方余额 001 100 0 100 001 200 0 300 002 50 0 50 002 100 0 150 003 50 0 50 003 500 0 550

是否可以使用动态 sql 获得此输出?如果可以,任何人都可以帮助我,我被困在这里。谢谢。

【问题讨论】:

  • SELECT * FROM table WHERE debit <> 0 ??
  • 不,这不是我想要发生的事情。我需要获取每个 id 的前 2 条记录

标签: sql-server-2008 dynamic-sql


【解决方案1】:

试试,

;WITH Data
AS
(
  SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) MyRowNumber
  FROM mytable 
)
SELECT * 
FROM Data
WHERE MyRowNumber IN (1,2)

更改ORDER BY 子句以获得您想要的顺序。

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 2013-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2020-10-01
    • 2015-10-30
    相关资源
    最近更新 更多