0

简短版本:我需要从另一个表返回一个包含 3 个项目的查询并将其添加到现有表中。

长版:

Table A包含以下信息:

| ID | Name | Date |  Comment  |
--------------------------------
| 1  | AJ   | 9/11 | Howdy     |
| 2  | AW   | 9/13 | Hi        |
| 3  | AK   | 9/15 | Aloha     |
| 4  | AW   | 9/15 | Hello     |
| 5  | AJ   | 9/18 | Greetings |

我需要Table B类似:

| ID |  Comment  |  Comment2  |  Comment3  |
--------------------------------------------
| 1  | Howdy     |  Aloha     |  Greetings |

我在跑步

SELECT TOP 3 * 
FROM a 
WHERE Name IN ('AJ','AK')

但这Table B看起来像:

| ID | Name | Date |  Comment  |
--------------------------------
| 1  | AJ   | 9/11 | Howdy     |
| 3  | AK   | 9/15 | Aloha     |
| 5  | AJ   | 9/18 | Greetings |

甚至有可能得到我想要的吗?

4

3 回答 3

1

不完全确定您的目标是什么,因为您对每个评论都有 id,然后您的输出有一个带有 id 的单行(这个 id 来自您的输出的哪里?)但这可能可以扩展:

SELECT
  [1] AS COMMENT1,
  [2] AS COMMENT2,
  [3] AS COMMENT3
FROM
  TABLE_A
PIVOT (MAX(COMMENT) FOR id IN ([1],[2],[3])) AS PVT
于 2013-11-07T01:46:49.217 回答
1

请试试这个,它对你有帮助

  select b.id, b.comment as comment
, (select comment from ##temp1 where id = b.id+2 )  as comment1
, (select comment from ##temp1 where id = b.id+4 )  as comment2
  from  ##temp1 b  where b.id=1
于 2013-11-07T10:53:37.680 回答
-1

我不知道这是否可行,但我只是在这里提出这个想法。让我知道它是否有效!

   Insert into B Values (
    ( SELECT TOP 3 comment FROM a WHERE Name IN ('AJ','AK') limit 1 ),
    ( SELECT TOP 3 comment FROM a WHERE Name IN ('AJ','AK') limit 1,1 ),
    ( SELECT TOP 3 comment FROM a WHERE Name IN ('AJ','AK') limit 2,1 )
    )

这是针对 MySQL 的。请针对 MSSQL Server 进行相应更改

于 2013-11-07T01:44:44.707 回答