Mysql SQL获取构成平均值的记录列表

Mysql SQL获取构成平均值的记录列表,mysql,sql-server,Mysql,Sql Server,我正在处理一个报表项目,其中已有一个查询正在显示某些表中的信息 例如: dbo.business_table prod_id | name | sale_price | 1 | chair | 2 1 | chair | 4 2 | table | 5 2 | table | 10 假设查询是这样的: Select name ,prod_id ,COUNT(*) as totalRecords ,AVG

我正在处理一个报表项目,其中已有一个查询正在显示某些表中的信息

例如:

dbo.business_table

prod_id | name | sale_price |
1       | chair | 2            
1       | chair | 4         
2       | table | 5
2       | table | 10
假设查询是这样的:

Select name
,prod_id
,COUNT(*) as totalRecords
,AVG(sale_price) as Priceaverage
from dbo.business_table
group by name, prod_id
通过在页面上显示,用户可以单击该行旁边的视图标记,然后运行查询以获取构成该平均值的记录列表。因此,如果我选择chair,查询将获取构成该平均值的两条记录并显示它们


我怎样才能做到这一点呢?

只是为了好玩,您可以通过JavaScript在客户端传递细节并对其进行解析。不需要第二次旅行

Declare @business_table table (prod_id int,name varchar(50),sale_price money)
Insert Into @business_table values
(1,'chair',2),
(1,'chair',4),
(2,'table',5),
(2,'table',10)

;with cteBase as (
    Select name
          ,prod_id
          ,totalRecords = COUNT(*)
          ,Priceaverage = AVG(sale_price) 
     From  @business_table A
     Group By name, prod_id
)
Select A.*
      ,B.Detail
 From  cteBase A
 Cross Apply (Select Detail=Stuff((Select ',' + cast(sale_price as varchar(25))
                                     From  @business_table 
                                     Where prod_id=A.prod_id
                                     For XML Path ('')),1,1,'') ) B
返回

name    prod_id totalRecords    Priceaverage    Detail
chair   1       2               3.00            2.00,4.00
table   2       2               7.50            5.00,10.00

为了好玩,您可以通过JavaScript在客户端传递细节并解析它。不需要第二次旅行

Declare @business_table table (prod_id int,name varchar(50),sale_price money)
Insert Into @business_table values
(1,'chair',2),
(1,'chair',4),
(2,'table',5),
(2,'table',10)

;with cteBase as (
    Select name
          ,prod_id
          ,totalRecords = COUNT(*)
          ,Priceaverage = AVG(sale_price) 
     From  @business_table A
     Group By name, prod_id
)
Select A.*
      ,B.Detail
 From  cteBase A
 Cross Apply (Select Detail=Stuff((Select ',' + cast(sale_price as varchar(25))
                                     From  @business_table 
                                     Where prod_id=A.prod_id
                                     For XML Path ('')),1,1,'') ) B
返回

name    prod_id totalRecords    Priceaverage    Detail
chair   1       2               3.00            2.00,4.00
table   2       2               7.50            5.00,10.00

我想你想在你的报告上有一个按钮,把你带到另一个报告?你忘记的是平均值是不能颠倒的!!!!ZLK-是的,它将运行一个新的报告,并在弹出窗口中显示结果。我假设您希望报告上有一个按钮将您带到另一个报告?您忘记的是,平均值是无法反转的!!!!ZLK-是的,它将运行一个新的报告,并在一个弹出窗口中显示结果。sorta可以工作,我只需要让详细信息以列表格式显示,而不是以列表格式显示cell@serophous在JS或SQL中,获取该列表并将逗号替换为
。我会把数据放在一个隐藏的单元格或一个数据元素中。那样的话,我只需要让细节以列表的形式出现,而不是以列表的形式出现cell@serophous在JS或SQL中,获取该列表并将逗号替换为
。我会将数据放在一个隐藏的单元格或数据元素中。