javascript - 从列(SQL-DataTable)中提取重复的日期和时间并将它们显示为 MVC Web App 上的列标题
问题描述
我是编程新手。我创建了一个 Web 应用程序 (MVC4),它显示来自 SQL 的表,例如:
----------------------------------
Wavelength | Values | Date | Time
----------------------------------
228 | 0 |10 Oct| 9:00
229 | 0.5 |10 Oct| 9:00
. . . .
. . . .
. . . .
228 | 0.1 |11 Oct| 8:00
229 | 0.3 |11 Oct| 8:00
. . . .
. . . .
. . . .
228 | 0.6 |11 Oct| 10:00
229 | 0.2 |11 Oct| 10:00
----------------------------------
我怎样才能显示它:
-------------------------------------
| 10 Oct | 11 Oct
--------------------------
Wavelength | 09:00 | 08:00 | 10:00
--------------------------
| Values | Values | Values
-------------------------------------
228 | 0 | 0.1 | 0.6
229 | 0.5 | 0.3 | 0.2
------------------------------------
我应该选择 Dynamic SQL Pivot 还是可以通过一些客户端技术来实现。请提出建议。
如果您发现这个问题不具体,我很抱歉。
谢谢 :)
解决方案
这样你可以做动态旋转,这段代码在sql server中测试过,
declare @allval varchar(500)
declare @sql varchar(500)
create table #table (wavelength varchar(50), value decimal(2,2), [date] varchar(10), [time] varchar(10))
insert into #table values
(228 ,0,'10 oct','9:00'),
(229 ,0.5,'10 oct','9:00'),
(228 ,0.1,'11 oct','8:00'),
(229 ,0.3,'11 oct','8:00'),
(228 ,0.6,'11 oct','10:00'),
(229 ,0.2,'11 oct','10:00')
select @allval = (select Stuff((SELECT distinct ', ' + concat('[',date,' ',time,']')
FROM #table l
FOR XML PATH('')),1,1,'') )
select @sql = 'select * from
(select concat(date,'' '',time) as datetime,wavelength,value from #table )j
pivot (max(value)
for [datetime] in(' + @allval+ '))p'
exec(@sql)
drop table #table
推荐阅读
- c# - 如何修复 xamarin.forms 移动应用页面中的空列表视图
- c - getaddrinfo 何时在列表中返回多个 sockaddr 结构?
- shell - Docker ENTRYPOINT shell 脚本
- css - li 中的长文本扰乱了设计
- javascript - `var` 语句中的逗号是逗号运算符的示例吗?
- javascript - Javascript 的 forEach() 方法使用未定义的键创建数组
- java - JavaFx WebEngine/WebView 中是否有与私有选项卡或私有窗口等效的功能?
- c++ - 为什么 OBJECT_DEPENDS 会导致 Ninja 生成器出现循环错误?
- php - 在 PHP 中从外部 url 解析 JSON 数据的问题
- json - 数据湖分析查询失败