*更新 - 请参见下面的(过去的图片)rSQL While循环插入
我真的坚持这个特殊的问题,我有两个表,项目和项目拨款,他们是由项目ID加入。
我的目标是使用项目分配表的行填充修改的项目表的列。我在下面列出了一张图片来说明我想要实现的目标。
一个项目最多可以有6个项目分配。每个项目分配都有一个自动增量ID(分配ID),但我不能在子选择中使用此ID,因为它不在1-6的范围内,所以我可以区分谁是第一个PA2和谁是PA3。
实施例:
(SELECT pa1.name FROM table where project.projectid = project_allocations.projectid and JVID = '1') as [PA1 Name],
(SELECT pa2.name FROM table where project.projectid = project_allocations.projectid and JVID = '1') as [PA2 Name],
修饰的项目表具有用于PA1,PA2,PA3的列。我需要根据项目分配表来填充这些列。因此,数据库FOR EACH项目中的第一条记录将是PA1。
我把放在一起的SQL代理作业放在一起,然后用添加的列重新创建这个表,所以这更关于通过row_num将项目分配行写入修改后的项目表中?
有什么建议吗?
--update
我现在需要做的是让ROW_NUMBER添加为每个项目列在DESC的顺序。
因此,每个项目ID的第一行将为1,之后的每一行将为2,3,4,5,6。
我发现本网站上的下面的代码:
use db_name
with cte as
(
select *
, new_row_id=ROW_NUMBER() OVER (ORDER BY eraprojectid desc)
from era_project_allocations_m
where era_project_allocations_m.eraprojectid = era_project_allocations_m.eraprojectid
)
update cte
set row_id = new_row_id
update cte
set row_id = new_row_id
我已经添加ROW_ID如前面的SQL代理程序步骤一列,该代码和它运行,但它不会产生我每个投影的row_number。
正如可以从上面的图像看到;我需要有1-2个FOR每个项目ID - 有效地给我成千上万的1s,2s,3s,4s。
这样,我可以将它们整理成列:)
优于一个图片是提供一些示例数据和预期输出。请使用适当版本的SQL-Server重新标记您的问题。 – Shnugo
这里是一个开始的好地方。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/和FWIW我怀疑你需要一个循环来插入数据。 –
@SeanLange我不确定,表格不会自动更新;我将用它为前端创建数据库视图,以便SQL作业在晚上运行以获取最新的数据。 – Justin