相关文章推荐
阳刚的紫菜汤  ·  php - ...·  1 年前    · 
打篮球的香菜  ·  SQL ...·  1 年前    · 

用于创建交叉表查询?(交叉表查询:这种查询用于对记录计算总计、平均值、计数或其他类型总计,然后按照两类信息对结果进行分组:一组信息分布在数据表的左侧,另一组分布在数据表的顶端。)。

TRANSFORM aggfunction
selectstatement
PIVOT pivotfield [IN (value1[, value2[, ...]])]

TRANSFORM 语句包含以下部分:

部分 说明
aggfunction 对所选数据进行操作的 SQL 聚合函数。
selectstatement SELECT 语句。
pivotfield 要用来在查询的结果集中创建列标题的字段或表达式?(表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)。
value1, value2 用于创建列标题的固定值。

使用交叉表查询汇总数据时,从指定的字段或表达式中选择值作为列标题,以便可以用更紧凑的格式查看数据(而不是使用选择查询?(选择查询:就表中存储的数据提出问题,然后在不更改数据的情况下以数据表的形式返回一个结果集。))。

TRANSFORM 是可选的,但如果包括此语句,则是 SQL 字符串?(SQL 字符串/语句:用于定义 SQL 命令(如 SELECT、UPDATE 或 DELETE)的表达式,可以包含子句(如 WHERE 和 ORDER BY)。SQL 字符串/语句通常用在查询和聚合函数中。)中的第一个语句。它在指定用作行标题的字段的 SELECT 语句以及指定行分组的 GROUP BY 子句之前。您可以选择包括其他子句,例如指定附加选择或排序条件的 WHERE 子句。您还可以在交叉表查询中使用子查询?(子查询:在另一个选择查询或操作查询内的 SQL SELECT 语句。)作为谓词(尤其是 WHERE 子句中的谓词)。

pivotfield 中返回的值用作查询结果集中的列标题。例如,在交叉表查询中对月销售额的销售数字进行透视时,会创建 12 个列。可以将 pivotfield 限制为使用可选的 IN 子句中所列的固定值(value1, value2)来创建标题。您还可以包括数据不存在的固定值来创建附加列。

一表aTable,字段如下:

aVer,aCode,Price
12 F01 10
12 F02 3
.....
共有记录从F01顺序到F80,aVer都是一样的'12',我用交叉查询将纵向转成一行横向

Transform sum(price) select aVer from aTable group by aVer Pivot aCode

可以得到如下一行记录:
aVer F01 F02 F03.....F80

Transform sum(price) select aVer from aTable group by aVer Pivot iif(len(aCode)=3,space(1)+aCode,aCode)

用于创建交叉表查询?(交叉表查询:这种查询用于对记录计算总计、平均值、计数或其他类型总计,然后按照两类信息对结果进行分组:一组信息分布在数据表的左侧,另一组分布在数据表的顶端。)。语法TRANSFORM aggfunctionselectstatementPIVOT pivotfield [IN (value1[, value2[, ...]])]TRANSFORM 语句包含以
1、功能:   用于创建 交叉 查询,该查询对于记录 计算总计、平均值、计数或其他类型的查询,然后按照两类信息对结果进行分组,一组数据分布在数据 的左侧,另一组数据分布在数据 的顶端 2、语法:   TRANSFROM aggfunction   SELECT statement   PIVOT pivotfield [ in (vlaue1 [,value2 [, …]] ) ]   对参数的解析:   1、aggfunction: 对所选数据进行操作的 sql 聚合函数,常见的有 count、sum、av
SELECT SNKYGROne.ZuHao, SNKYGROne.LingQI, SNKYGroup.ExpDate, MAX(iif([SNKYGROne.ShunXu] = 1, SNKYGROne.OnekN, 0)) AS kn1, MAX(iif([SNKYGROne.Sh
SELECT f_wordstart,f_sourceID,max(iif(F_PROPERTY='30',f_value,'0'))as 30, max(iif(F_PROPERTY='34',f_value,'0'))as 34 from relation where f_wordstart='mire' group by f_wordstart,f_sourceID;
背景需求:最近做列 数据上移和下移功能,数据库有个index字段用来存储当前对象的排列序号; 第一版代码是同事写的,上移和下移功能分成两个接口,上移的时候将index-1;下移的时候将index+1; 这个方式,真的是无力吐槽; 测试人员反馈的bug信息是,排序几次之后就失去了排序功能,点击上移和下移列 并没有什么变化,或者是会一下子跳几格; 好嘛,查看数据库,一堆index重复 第二版...
static void Main(string[] args) string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database.accdb"; using (OleDbConnection connection = new OleDbConnection(connectionString)) connection.Open(); OleDbCommand command = new OleDbCommand("SELECT Customers.CustomerName, Orders.OrderID FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;", connection); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) Console.WriteLine("Customer Name: {0}, Order ID: {1}", reader["CustomerName"], reader["OrderID"]); reader.Close(); 以上示例中使用了 OleDbConnection 和 OleDbCommand 对象来连接和查询 Access 数据库中的多张 。在 SQL 语句中使用 INNER JOIN 可以将 Customers 和 Orders 联结起来,保证查询结果中包含这两张 的信息。最后使用 OleDbDataReader 来读取查询结果并输出。