Я сталкиваюсь со следующей проблемой с MySQL в сочетании с Data Studio и, откровенно говоря, совершенно растерялся:
SELECT
user.name,
user.second_name,
school.name,
SUM(booked_lessons.duration),
SUM(total_lessons.duration),
SUM(theory_lessons.duration)
FROM
lesson
LEFT JOIN
user ON lesson.instructor_id = user.id
LEFT JOIN
school ON lesson.school_id = school.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'driving'
AND lesson.user_id IS NOT NULL) AS booked_lessons ON booked_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = ('driving' OR 'theory' OR 'exam')) AS total_lessons ON total_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'theory') AS theory_lessons ON theory_lessons.id = lesson.id
WHERE
lesson.startDate >= '2018-01-31 00:00:00'
AND lesson.startDate <= '2019-01-06 23:59:59'
GROUP BY lesson.instructor_id;`
Когда я включаю импорт кода в качестве источника данных MySQL в Google Data Studio, кажется, все работает нормальновначале.Тем не менее, когда я хочу проанализировать данные в диаграммах, я получаю следующее сообщение об ошибке: Ошибка 1
Еще более запутанным является следующее:
при использовании этогокод:
`SELECT
user.name 'Vorname',
user.second_name 'Nachname',
lesson.instructor_id 'FL ID',
school.name 'Standort',
SUM(offered_lessons.duration) 'noch buchbare Praxisstunden',
SUM(booked_lessons.duration) 'gebuchte Praxisstunden',
SUM(total_week_lessons.duration) 'angebotene Praxis gesamt',
SUM(theory_lessons.duration) 'Theorieunterricht',
SUM(exam_lessons.duration) 'Prüfungen',
SUM(total_lessons.duration) 'angebotene Stunden gesamt',
SUM(activity_lessons.duration) 'Sonstige Tätigkeiten',
SUM(canceled_lessons.duration) 'abgesagt von 123 <48',
SUM(canceled_48_lessons.duration) 'abgesagt von 123 >48',
SUM(canceled_student_lessons.duration) 'abgesagt von Schueler <48',
SUM(canceled_48_student_lessons.duration) 'abgesagt von Schueler >48',
SUM(canceled_instructor_lessons.duration) 'abgesagt von FL <48',
SUM(canceled_48_instructor_lessons.duration) 'abgesagt von FL >48'
FROM
lesson
LEFT JOIN
user ON lesson.instructor_id = user.id
LEFT JOIN
school ON lesson.school_id = school.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'driving'
AND lesson.user_id IS NULL) AS offered_lessons ON offered_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'driving'
AND lesson.user_id IS NOT NULL) AS booked_lessons ON booked_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'driving') AS total_week_lessons ON total_week_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = ('driving' OR 'theory' OR 'exam')) AS total_lessons ON total_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'theory') AS theory_lessons ON theory_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'exam') AS exam_lessons ON exam_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id, lesson.duration
FROM
lesson
WHERE
lesson.status = 'active'
AND entity = 'activity') AS activity_lessons ON activity_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id,
lesson.duration,
TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
FROM
lesson
WHERE
lesson.status = 'canceled'
AND entity = 'driving'
AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) < 48
AND user_Id != lesson.cancelled_by_id) AS canceled_lessons ON canceled_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id,
lesson.duration,
TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
FROM
lesson
WHERE
lesson.status = 'canceled'
AND entity = 'driving'
AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) >= 48
AND user_Id != lesson.cancelled_by_id) AS canceled_48_lessons ON canceled_48_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id,
lesson.duration,
TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
FROM
lesson
WHERE
lesson.status = 'canceled'
AND entity = 'driving'
AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) < 48
AND user_Id = lesson.cancelled_by_id) AS canceled_student_lessons ON canceled_student_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id,
lesson.duration,
TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
FROM
lesson
WHERE
lesson.status = 'canceled'
AND entity = 'driving'
AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) >= 48
AND user_Id = lesson.cancelled_by_id) AS canceled_48_student_lessons ON canceled_48_student_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id,
lesson.duration,
TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
FROM
lesson
WHERE
lesson.status = 'canceled'
AND entity = 'driving'
AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) < 48
AND instructor_Id = lesson.cancelled_by_id) AS canceled_instructor_lessons ON canceled_instructor_lessons.id = lesson.id
LEFT JOIN
(SELECT
lesson.id,
lesson.duration,
TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate)
FROM
lesson
WHERE
lesson.status = 'canceled'
AND entity = 'driving'
AND TIMESTAMPDIFF(HOUR, lesson.cancelled_at, lesson.startDate) >= 48
AND Instructor_Id = lesson.cancelled_by_id) AS canceled_48_instructor_lessons ON canceled_48_instructor_lessons.id = lesson.id
WHERE
lesson.startDate >= '2018-01-31 00:00:00'
AND lesson.startDate <= '2019-01-06 23:59:59'
GROUP BY lesson.instructor_id;
`Код практически идентичен.Но теперь я получаю это сообщение об ошибке:
Ошибка 2
Может кто-нибудь помочь мне здесь?
Заранее спасибо.