数据库是 什么是交叉表查询

数据库是 什么是交叉表查询,第1张

交叉表是一种常用的分类汇总表格。使用交叉表查询,显示源于表中某个字段的汇总值,并将它们分组,其中一组列在数据表的左侧,另一组列在数据表的上部。行和列的交叉处可以对数据进行多种汇总计算,如:求和、平均值、记数、最大值、最小值等。使用交叉表查询数据非常直观明了,被广泛应用。交叉表查询也是数据库的一个特点。

例如:

select 表1.组名,

(select 表1.成员姓名 from 表2 b where 表1.成员1id=表2.成员id) as 成员1id,

(select 表1.成员姓名 from 表2 b where 表1.成员2id=表2.成员id) as 成员2id,

(select 表1.成员姓名 from 表2 b where 表1.成员3id=表2.成员id) as 成员3id

from 表1,表2

--这种就是交叉表查询

/* 使用方法 直接执行 传入参数(series_guid 查询条件)返回一个数据集 如 查询该系列Cylindrical 下所有产品 dbo P_GetSeriesProductDetail Cylindrical 查询系列Cylindrical 下含有BK 的产品 dbo P_GetSeriesProductDetail Cylindrical product_name like %BK % */ CREATE PROCEDURE P_GetSeriesProductDetail(@series_guid varchar( ) @condition varchar( )) AS DECLARE @ParamNo nvarchar( ) DECLARE @SQL nvarchar( ) Set @SQL= DECLARE P_cursor CURSOR local fast_forward FOR SELECT param_no FROM V_product_params where series_guid=@series_guid OPEN P_cursor

FETCH next FROM P_cursor INTO @ParamNo WHILE (@@fetch_status = ) BEGIN Set @SQL = @SQL + MAX(CASE param_no WHEN + @ParamNo + THEN param_value ELSE END) AS F + @ParamNo + char( ) FETCH next FROM P_cursor INTO @ParamNo END

CLOSE P_cursor DEALLOCATE P_cursor Set @SQL= SELECT type_guid series_guid product_no product_name + @SQL + FROM V_product_params WHERE series_guid= + @series_guid + if (LTrim(@condition)<>) Set @SQL= @SQL + and + @condition Set @SQL= @SQL + GROUP BY type_guid series_guid product_no product_name

lishixinzhi/Article/program/MySQL/201311/29566


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9436072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存