按照分钟 动态属性 行转列

__小龙虾__ 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


...全文
356 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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
  • 打赏
  • 举报
回复

34,838

社区成员

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

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