使用mysql作为数据源时googledatastudio出错

w51jfk4q  于 2021-06-16  发布在  Mysql
关注(0)|答案(2)|浏览(407)

我在mysql与data studio的结合中遇到了以下问题,坦率地说,我很困惑:

  1. SELECT
  2. user.name,
  3. user.second_name,
  4. school.name,
  5. SUM(booked_lessons.duration),
  6. SUM(total_lessons.duration),
  7. SUM(theory_lessons.duration)
  8. FROM
  9. lesson
  10. LEFT JOIN
  11. user ON lesson.instructor_id = user.id
  12. LEFT JOIN
  13. school ON lesson.school_id = school.id
  14. LEFT JOIN
  15. (SELECT
  16. lesson.id, lesson.duration
  17. FROM
  18. lesson
  19. WHERE
  20. lesson.status = 'active'
  21. AND entity = 'driving'
  22. AND lesson.user_id IS NOT NULL) AS booked_lessons ON booked_lessons.id = lesson.id
  23. LEFT JOIN
  24. (SELECT
  25. lesson.id, lesson.duration
  26. FROM
  27. lesson
  28. WHERE
  29. lesson.status = 'active'
  30. AND entity = ('driving' OR 'theory' OR 'exam')) AS total_lessons ON total_lessons.id = lesson.id
  31. LEFT JOIN
  32. (SELECT
  33. lesson.id, lesson.duration
  34. FROM
  35. lesson
  36. WHERE
  37. lesson.status = 'active'
  38. AND entity = 'theory') AS theory_lessons ON theory_lessons.id = lesson.id
  39. WHERE
  40. lesson.startDate >= '2018-01-31 00:00:00'
  41. AND lesson.startDate <= '2019-01-06 23:59:59'
  42. GROUP BY lesson.instructor_id;`

当我将import代码作为mysql数据源包含在googledatastudio中时,一开始一切似乎都很顺利。然而,当我想分析图表中的数据时,我得到了以下错误消息:错误1
更令人困惑的是:
当我使用此代码时:

  1. `SELECT
  2. user.name 'Vorname',
  3. user.second_name 'Nachname',
  4. lesson.instructor_id 'FL ID',
  5. school.name 'Standort',
  6. SUM(offered_lessons.duration) 'noch buchbare Praxisstunden',
  7. SUM(booked_lessons.duration) 'gebuchte Praxisstunden',
  8. SUM(total_week_lessons.duration) 'angebotene Praxis gesamt',
  9. SUM(theory_lessons.duration) 'Theorieunterricht',
  10. SUM(exam_lessons.duration) 'Prüfungen',
  11. SUM(total_lessons.duration) 'angebotene Stunden gesamt',
  12. SUM(activity_lessons.duration) 'Sonstige Tätigkeiten',
  13. SUM(canceled_lessons.duration) 'abgesagt von 123 <48',
  14. SUM(canceled_48_lessons.duration) 'abgesagt von 123 >48',
  15. SUM(canceled_student_lessons.duration) 'abgesagt von Schueler <48',
  16. SUM(canceled_48_student_lessons.duration) 'abgesagt von Schueler >48',
  17. SUM(canceled_instructor_lessons.duration) 'abgesagt von FL <48',
  18. SUM(canceled_48_instructor_lessons.duration) 'abgesagt von FL >48'
  19. FROM
  20. lesson
  21. LEFT JOIN
  22. user ON lesson.instructor_id = user.id
  23. LEFT JOIN
  24. school ON lesson.school_id = school.id
  25. LEFT JOIN
  26. (SELECT
  27. lesson.id, lesson.duration
  28. FROM
  29. lesson
  30. WHERE
  31. lesson.status = 'active'
  32. AND entity = 'driving'
  33. AND lesson.user_id IS NULL) AS offered_lessons ON offered_lessons.id = lesson.id
  34. LEFT JOIN
  35. (SELECT
  36. lesson.id, lesson.duration
  37. FROM
  38. lesson
  39. WHERE
  40. lesson.status = 'active'
  41. AND entity = 'driving'
  42. AND lesson.user_id IS NOT NULL) AS booked_lessons ON booked_lessons.id = lesson.id
  43. LEFT JOIN
  44. (SELECT
  45. lesson.id, lesson.duration
  46. FROM
  47. lesson
  48. WHERE
  49. lesson.status = 'active'
  50. AND entity = 'driving') AS total_week_lessons ON total_week_lessons.id = lesson.id
  51. LEFT JOIN
  52. (SELECT
  53. lesson.id, lesson.duration
  54. FROM
  55. lesson
  56. WHERE
  57. lesson.status = 'active'
  58. AND entity = ('driving' OR 'theory' OR 'exam')) AS total_lessons ON total_lessons.id = lesson.id
  59. LEFT JOIN
  60. (SELECT
  61. lesson.id, lesson.duration
  62. FROM
  63. lesson
  64. WHERE
  65. lesson.status = 'active'
  66. AND entity = 'theory') AS theory_lessons ON theory_lessons.id = lesson.id
  67. LEFT JOIN
  68. (SELECT
  69. lesson.id, lesson.duration
  70. FROM
  71. lesson
  72. WHERE
  73. lesson.status = 'active'
  74. AND entity = 'exam') AS exam_lessons ON exam_lessons.id = lesson.id
  75. LEFT JOIN
  76. (SELECT
  77. lesson.id, lesson.duration
  78. FROM
  79. lesson
  80. WHERE
  81. lesson.status = 'active'
  82. AND entity = 'activity') AS activity_lessons ON activity_lessons.id = lesson.id
  83. LEFT JOIN
  84. (SELECT
  85. lesson.id,
  86. lesson.duration,
  87. TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
  88. FROM
  89. lesson
  90. WHERE
  91. lesson.status = 'canceled'
  92. AND entity = 'driving'
  93. AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) < 48
  94. AND user_Id != lesson.cancelled_by_id) AS canceled_lessons ON canceled_lessons.id = lesson.id
  95. LEFT JOIN
  96. (SELECT
  97. lesson.id,
  98. lesson.duration,
  99. TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
  100. FROM
  101. lesson
  102. WHERE
  103. lesson.status = 'canceled'
  104. AND entity = 'driving'
  105. AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) >= 48
  106. AND user_Id != lesson.cancelled_by_id) AS canceled_48_lessons ON canceled_48_lessons.id = lesson.id
  107. LEFT JOIN
  108. (SELECT
  109. lesson.id,
  110. lesson.duration,
  111. TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
  112. FROM
  113. lesson
  114. WHERE
  115. lesson.status = 'canceled'
  116. AND entity = 'driving'
  117. AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) < 48
  118. AND user_Id = lesson.cancelled_by_id) AS canceled_student_lessons ON canceled_student_lessons.id = lesson.id
  119. LEFT JOIN
  120. (SELECT
  121. lesson.id,
  122. lesson.duration,
  123. TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
  124. FROM
  125. lesson
  126. WHERE
  127. lesson.status = 'canceled'
  128. AND entity = 'driving'
  129. AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) >= 48
  130. AND user_Id = lesson.cancelled_by_id) AS canceled_48_student_lessons ON canceled_48_student_lessons.id = lesson.id
  131. LEFT JOIN
  132. (SELECT
  133. lesson.id,
  134. lesson.duration,
  135. TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
  136. FROM
  137. lesson
  138. WHERE
  139. lesson.status = 'canceled'
  140. AND entity = 'driving'
  141. AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) < 48
  142. AND instructor_Id = lesson.cancelled_by_id) AS canceled_instructor_lessons ON canceled_instructor_lessons.id = lesson.id
  143. LEFT JOIN
  144. (SELECT
  145. lesson.id,
  146. lesson.duration,
  147. TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
  148. FROM
  149. lesson
  150. WHERE
  151. lesson.status = 'canceled'
  152. AND entity = 'driving'
  153. AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) >= 48
  154. AND Instructor_Id = lesson.cancelled_by_id) AS canceled_48_instructor_lessons ON canceled_48_instructor_lessons.id = lesson.id
  155. WHERE
  156. lesson.startDate >= '2018-01-31 00:00:00'
  157. AND lesson.startDate <= '2019-01-06 23:59:59'
  158. GROUP BY lesson.instructor_id;

`代码几乎相同。但现在我得到一个错误信息:
错误2
有人能帮帮我吗?
提前谢谢。

n9vozmp4

n9vozmp41#

不能用分号(;)因为datastudio在生成数据时会向查询中添加代码。
有同样的问题,删除分号,现在报告正在工作。

jgwigjjp

jgwigjjp2#

  1. ;
  2. ) AS t0 GROUP BY Vorname ORDER BY qt_bdgy5cbbub DESC'

在子查询的末尾,就在前面有分号吗

  1. ") AS t0"?

相关问题