sql - 如何转换类似于交叉表的 Access 数据
问题描述
我有想要显示的数据,类似于交叉表查询,但不完全是。我拥有的数据看起来像这样,每个数据段位于不同的行:
我希望将数据合并到每个客户端的一行中,如下所示:
我已经尝试使用交叉表查询进行此操作,但我不想汇总任何字段,并且每个产品都有几个数据点(类型、名称、购买日期等)。
任何帮助是极大的赞赏!
解决方案
不是一个非常实用的数据表示,但它是可能的。需要一个唯一的标识符字段 - 自动编号应该服务 - 我称之为 RID。考虑:
查询一:
SELECT RID, ID, FirstName, LastName, Dept, ProductType AS Data, "PT" AS Cat FROM Table1
UNION SELECT RID, ID, FirstName, LastName, Dept, ProductName, "PN" FROM Table1
UNION SELECT RID, ID, FirstName, LastName, Dept, PurchaseDate, "PD" FROM Table1
UNION SELECT RID, ID, FirstName, LastName, Dept, PurchaseCost, "PC" FROM Table1
UNION SELECT RID, ID, FirstName, LastName, Dept, DeliveryDate, "DD" FROM Table1;
查询 2:
TRANSFORM First(Query1.Data) AS FirstOfData
SELECT Query1.ID, Query1.FirstName, Query1.LastName, Query1.Dept
FROM Query1
GROUP BY Query1.ID, Query1.FirstName, Query1.LastName, Query1.Dept
PIVOT DCount("*","Query1","ID=" & [ID] & " AND Cat='" & [Cat] & "' AND RID<" & [RID])+1 & [Cat];
但是,有 255 个字段的限制,因此可能会有更多的数据无法处理。
推荐阅读
- javascript - JavaScript IF (loginSuccess) DO (...)
- vue.js - NuxtJS + VueJS + 静态 JavaScript 游戏
- r - R:尝试对数据框中的日期范围进行子集化
- windows-subsystem-for-linux - 通过另一台机器访问 ext4.vhdx?
- sapui5 - 在本地和 WebIDE 中运行相同的 UI5 应用程序,使用真实数据和模拟数据
- java - 重试失败的功能文件
- php - Days of Stay 计数器与 php
- sql - sql中的OFFSET和FETCH NEXT:不能返回少于限制的记录数
- sql - 如何查阅具有重复参考值和不同状态的表格
- javascript - 记录不充分的 google 数据存储区 api 返回未定义的 transaction.get