WXDao_getSensorLiveData.sql 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. SELECT
  2. deviceid,
  3. devicecode,
  4. devicename,
  5. pointid,
  6. pointcode,
  7. pointname,
  8. VALUE,
  9. left(recordtime,19) recordtime,
  10. qcdstate ,
  11. CONCAT(IfNULL(floor,''),'~',IfNULL(upper,'')) normalvalue,
  12. unit
  13. FROM
  14. (
  15. SELECT
  16. record.deviceid AS deviceid,
  17. record.devicename AS devicename,
  18. de.CODE AS devicecode,
  19. pointid,
  20. pointcode,
  21. pointname,
  22. param_value AS VALUE ,
  23. recordtime,
  24. record.qcdstate AS qcdstate ,
  25. record.UPPER upper ,
  26. record.floor floor,
  27. record.typeunit unit
  28. FROM
  29. p_sensor_record record
  30. LEFT JOIN p_device de ON record.deviceid = de.id
  31. WHERE
  32. 1=1
  33. <#if qrydate ?exists && qrydate ?length gt 0>
  34. and LEFT ( recordtime, 10 ) = :qrydate
  35. </#if>
  36. <#if projectid ?exists && projectid ?length gt 0>
  37. AND record.projectid = :projectid
  38. </#if>
  39. ORDER BY
  40. recordtime DESC
  41. ) tmp
  42. GROUP BY
  43. pointid UNION ALL
  44. SELECT
  45. deviceid,
  46. devicecode,
  47. devicename,
  48. pointid,
  49. pointcode,
  50. pointname,
  51. VALUE,
  52. recordtime,
  53. qcdstate ,
  54. '' as normalvalue,
  55. '' as unit
  56. FROM
  57. (
  58. SELECT
  59. point.deviceid AS deviceid,
  60. dev.NAME AS devicename,
  61. dev.CODE AS devicecode,
  62. monitor_point_id AS pointid,
  63. point.CODE AS pointcode,
  64. point.NAME AS pointname,
  65. '' AS VALUE,
  66. abn.create_date AS recordtime,
  67. abn.state AS qcdstate
  68. FROM
  69. p_sensor_abnormal abn
  70. LEFT JOIN p_sensor_monitor_point point ON abn.monitor_point_id = point.id
  71. LEFT JOIN p_device dev ON point.deviceid = dev.id
  72. WHERE
  73. abn.state = '21'
  74. <#if projectid ?exists && projectid ?length gt 0>
  75. AND dev.projectid = :projectid
  76. </#if>
  77. AND LEFT ( abn.create_date, 10 ) = :qrydate
  78. ORDER BY
  79. abn.create_date DESC
  80. ) tmp
  81. GROUP BY
  82. pointid