按照分钟 动态属性 行转列

__小龙虾__ 2017-03-13 03:58:53

业务逻辑 两个类型的设备 每隔1分钟采集一次数据


设备表 KS_EquipMent
EquipmentID Ecode
1 14893828962266904
2 14881719860463202


动态属性表 KS_DAttribute
AttrID ClassID AttrName
1 1 温度
2 1 浓度
3 1 瞬时流量
4 2 压力
5 2 输出量

设备属性关系表 KS_DPrcArr_Relations
RelID EquiMentID AttrID
1 1 1
2 1 2
3 2 4
4 2 5


记录表 KS_EquipRec
ID EquipmentID ArrID FieldValue ColTime
1 1 1 30 2017-03-13 13:01:00.000
2 1 2 200 2017-03-13 13:01:00.000
3 2 4 400 2017-03-13 13:01:00.000
4 2 5 10 2017-03-13 13:01:00.000
5 1 1 31 2017-03-13 13:02:00.000
6 1 2 201 2017-03-13 13:02:00.000
7 2 4 401 2017-03-13 13:02:00.000


要考虑 动态属性表属性动态增加,设备属性关系表记录动态增加
目标结果如下:
EquipmentID 温度 浓度 瞬时流量 压力 输出量 coltime
1 30 200 0 0 0 2017-03-13 13:01
2 0 0 0 400 10 2017-03-13 13:01
1 31 201 0 0 0 2017-03-13 13:02
2 0 0 0 401 0 2017-03-13 13:02


...全文
407 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
__小龙虾__ 2017-03-14
  • 打赏
  • 举报
回复
引用 7 楼 Tiger_Zhao 的回复:
提问的智慧
你可以了的,整这么多,受教了...
Tiger_Zhao 2017-03-14
  • 打赏
  • 举报
回复
xiezhou927 2017-03-14
  • 打赏
  • 举报
回复
搞好了没。。。。骚年
RINK_1 2017-03-13
  • 打赏
  • 举报
回复
DECLARE @SQL VARCHAR(8000) SELECT @SQL=ISNULL(@SQL+',','')+'MAX(CASE WHEN ATTRNAME='''+ATTRNAME+''' THEN FIELDVALUE ELSE 0 END) AS '+ATTRNAME+'' FROM KS_DAttribute GROUP BY ATTRNAME SET @SQL='SELECT EQUIPMENTID,'+@SQL+',COLTIME FROM (SELECT * FROM KS_EquipRec A LEFT JOIN KS_DAttribute B ON A.ARRID=B.AttrID) AS A GROUP BY EQUIPMENTID,COLTIME' SELECT EQUIPMENTID,MAX(CASE WHEN ATTRNAME='浓度' THEN FIELDVALUE ELSE 0 END) AS 浓度,MAX(CASE WHEN ATTRNAME='输出量' THEN FIELDVALUE ELSE 0 END) AS 输出量,MAX(CASE WHEN ATTRNAME='瞬时流量' THEN FIELDVALUE ELSE 0 END) AS 瞬时流量,MAX(CASE WHEN ATTRNAME='温度' THEN FIELDVALUE ELSE 0 END) AS 温度,MAX(CASE WHEN ATTRNAME='压力' THEN FIELDVALUE ELSE 0 END) AS 压力,COLTIME FROM (SELECT * FROM KS_EquipRec A LEFT JOIN KS_DAttribute B ON A.ARRID=B.AttrID) AS A GROUP BY EQUIPMENTID,COLTIME
__小龙虾__ 2017-03-13
  • 打赏
  • 举报
回复
引用 4 楼 Tiger_Zhao 的回复:
参考 200分急求成绩统计SQL语句
帮忙写下啊,实在是写不了
Tiger_Zhao 2017-03-13
  • 打赏
  • 举报
回复
源码下载地址: https://pan.quark.cn/s/0d6e3002ba51 ### IR2110中文资料知识点详述 #### 一、概述 IR2110是一种专为脉冲宽度调制应用而设计的高性能驱动集成电路,在各类功率转换设备中具有广泛的应用,特别是在需要实现隔离驱动的场景下表现出色。该芯片融合了光电隔离与电磁隔离的优势,能够达成快速响应并保持较小的物理尺寸,尤其适合用于中小功率的变换装置。 #### 二、IR2110内部结构与特点 **1. 内部结构** - **封装形式**:采用DIP14引脚封装。 - **内部组成**:由逻辑输入单元、电平平移单元以及输出保护单元这三个主要部分构成。 - **悬浮电源**:借助自举电路实现,使得高端工作电压最高能够达到500V,支持±50V/ns的电压变化率。 - **工作电压范围**:逻辑电源电压范围为5~15V,输出电源端电压范围为10~20V,易于与其他逻辑电平进行匹配。 - **工作频率**:最高可达到500kHz。 - **功耗**:在15V条件下静态功耗仅为116mW。 - **延迟时间**:导通延迟120ns,关断延迟94ns。 - **峰值输出电流**:图腾柱输出峰值电流为2A。 **2. 特点** - **独立输入通道**:具备独立的低端和高端输入通道配置。 - **兼容性**:逻辑电源地与功率地之间允许±5V的偏移量,便于与TTL或CMOS电平进行匹配。 - **自举电源**:内置自举电源电路,有效减少驱动电源的数量,从而简化电路设计。 - **高dv/dt能力**:具有较强的dv/dt抑制能力,适合高频开关应用。 - **低功耗**:工作状态下功耗较低,有利于提升整体效率。 #### 三、高压侧...

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧