首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据聚合到相同ID的视图中

如何将数据聚合到相同ID的视图中
EN

Stack Overflow用户
提问于 2010-02-11 04:21:15
回答 2查看 107关注 0票数 0

我有一个现有的视图,它基于具有相同product_id的聚合选项名称,以以下格式返回数据。视图名称为"vProdOptions“

代码语言:javascript
运行
复制
option_name           product_id

XSMALL (2-6)          17854
SMALL (6-10)          17854
MEDIUM (10-14)      17854
LARGE                 18232

如何在如下格式的聚合视图中返回此数据?

代码语言:javascript
运行
复制
  OPTIONS_AVAIL                                           Product_ID

  XSMALL (2-6), SMALL (6-10), MEDIUM (10-14)              127182

  SMALL (6-10), MEDIUM (10-14)                            166382

我使用的是MS SQL2K5。

我在这里根据这两个问题的评论创建一个新问题。我意识到我需要的是一处风景。

Aggregate data from view as UDF to use in select statement

error with sql function creation

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-11 04:31:37

您可以选择不同的产品,并在计算选项字符串的函数上对它们执行cross apply操作:

代码语言:javascript
运行
复制
select *
from (select distinct product_id from @t) a
cross apply (
    select option_name + ', ' as [text()]
    from @t b
    where a.product_id = b.product_id
    for xml path('')
) c ( Options )

-->

product_id   Options
17854        XSMALL (2-6), SMALL (6-10), MEDIUM (10-14), 
18232        LARGE, 

创建示例的代码:

代码语言:javascript
运行
复制
declare @t table (option_name varchar(30), product_id int)

insert @t select 'XSMALL (2-6)', 17854
union all select 'SMALL (6-10)', 17854
union all select 'MEDIUM (10-14)', 17854
union all select 'LARGE', 18232
票数 1
EN

Stack Overflow用户

发布于 2010-02-11 04:24:23

在SQL中,旋转并不是一种非常有效的方法。就我个人而言,我不会去管你的视图,而是让数据在整个应用程序中旋转。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2240057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档