从SQL Server表中检索每个类别的不同行数
发布时间:2020-12-12 06:44:22 所属栏目:MsSql教程 来源:网络整理
导读:我需要生成一个地址列表,我的客户将发送商品目录.他们想要将特定数量的目录(X)发送到特定的邮政编码(Y)[这与这些邮政编码中的平均收入有关] 我在SQL Server 2008 R2中有2个表:CatalogRequests和AddressList CatalogRequests是我们应该向客户数据库中的每个邮
我需要生成一个地址列表,我的客户将发送商品目录.他们想要将特定数量的目录(X)发送到特定的邮政编码(Y)[这与这些邮政编码中的平均收入有关]
我在SQL Server 2008 R2中有2个表:CatalogRequests和AddressList CatalogRequests是我们应该向客户数据库中的每个邮政编码发送多少目录的列表: | Zip | QuantityRequested | ------------------------------- | 12345 | 150 | | 13445 | 800 | | 45678 | 200 | | 41871 | 350 | | 77777 | 125 | AddressList就是这样,一个地址列表=) | Name | Address1 | Address2 | City | State | Zip | --------------------------------------------------------------------------- | Bruce | 1 BatCave Dr | | Gotham City | IL | 12345 | | Clark | 9 Smallville St | Apt A | Metropolis | NY | 45678 | | Thor | 5 Valhalla Way | | Asgard | ?? | 77777 | 我试着用SQL查询做了一段时间,然后放弃并编写了一个小的C#程序来做我需要做的事情(基本上,生成一堆SQL查询 – 一个用于CatalogRequests中的每个记录) . 我的问题是,我怎么能用一个SQL查询完成这个?我只是好奇这一点,似乎有办法做到这一点,我只是遗漏了一些东西.或者可能不可能,我很疯狂=) 结果集将是来自AddressList的记录,其满足CatalogRequest中的要求(例如,150个邮政编码为12345的记录,800个记录,邮政编码为13445,等等). 解决方法嗯……这样的事情怎么样:;with addressListWithID AS ( SELECT name,address1,adress2,city,state,zip,ROW_NUMBER() OVER(partition by zip order by newid()) as Row FROM AddressList ) SELECT A.name,A.address1,A.adress2,A.city,A.state,A.zip FROM addressListWithID A INNER JOIN CatalogRequests C ON C.zip = A.zip AND A.row <= C.QuantityRequested 请求数量的随机地址. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |