我有一个问题。
假设我的表A包含15行和1列(列名:item_name)中的15个项目,如附图所示。
然后是表B,其中包含5个人的姓名,编号从1到5
(列:数字,名称)。
表A上的每个项目必须分发给表B中的人,每个人获得5项,规则是人数1从顶部获得第1个5项,第2个人获得第2个5项,依此类推至人数3。
是否有可能为表A中的前5个项目分配5个数字1,然后为接下来的5个项目分配5个数字2,依此类推,以便我可以使用数字加入2个表格,以便我知道谁得到哪些物品? 我希望的结果就像附图所示。
答案 0 :(得分:0)
您可以使用NTILE
declare @value int = (select COUNT(*) from tableA) / 5
select
*
from
(
select
Item_Name,
NTILE(@value) over (order by Item_Name) nr
from tableA
) tbl
join tableB on tableB.Number = tbl.nr