【发布时间】:2018-08-03 10:00:15
【问题描述】:
我有以下数据库,这是一个用户和他的收据之间的简单关系:
我需要获得与用户一样多的行和尽可能多的收据列。例如:
如果用户 1 有 2 个收据,我必须获得:
IdUser Receipt 1 Receipt 2
1 12€ 13€
我尝试在 User 和 Receipt 表之间建立一个内部连接,但我的用户行数与他们的收据数一样多。
编辑
SELECT user.idUser, receipt.value
FROM user INNER JOIN receipt ON user.IdUser = receipt.IdUser;
【问题讨论】:
-
您必须在查询中使用
Dynamic PIVOT -
附上您尝试过的查询?
-
就个人而言,我建议不要使用动态 SQL,而是在表示层中进行这种类型的转换。例如,通过使用 SSRS 中的矩阵或 Excel 中的数据透视表。
-
@venkatesh 好的,我添加了我尝试过的查询。
-
您会在查询中返回超过 1 个用户吗?如果您必须使用 T-SQL 而不是表示层来执行此操作,那么 Consumable 示例数据将真正帮助您获得答案。
标签: sql sql-server ms-access sql-server-2000