пытаюсь создать live view с join внутри но получаю по носу таким сообщением:
Cannot get JOIN keys from JOIN ON section: dl.DiagnosticWorkId = DiagnosticWorkId.
вот сама вьюха
CREATE VIEW ParticipantTraningLevelV2 AS
SELECT
DiagnosticWorkId,
DiagnosticWorkName,
OrganizationId,
OrganizationName,
SchoolId,
SchoolName,
multiIf((dl.IsMark = 1) AND (dw.marksum >= dl.StartLevel) AND (dw.marksum <= dl.EndLevel), dl.LevelName, (dl.IsMark = 0) AND ((marksum / maxmarksum) >= dl.StartLevel) AND ((marksum / maxmarksum) <= dl.EndLevel), dl.LevelName, '-') AS Уровни подготовки
FROM
(
SELECT
DiagnosticWorkId,
DiagnosticWorkName,
OrganizationId,
OrganizationName,
SchoolId,
SchoolName,
SUM(Mark) AS marksum,
SUM(MaxMark) AS maxmarksum,
DiagnosticWorkStudentsId
FROM
(
SELECT *
FROM ParticipantMarkResultsDistributedV2
LIMIT 1 BY
DiagnosticWorkId,
OrganizationId,
SchoolId,
DiagnosticWorkStudentGroupId,
DiagnosticWorkStudentsId,
TaskNumber
)
WHERE MaxMark > toDecimal32(0., 2)
GROUP BY
DiagnosticWorkId,
DiagnosticWorkName,
OrganizationId,
OrganizationName,
SchoolId,
SchoolName,
DiagnosticWorkStudentsId
) AS dw
LEFT JOIN DiagnosticWorkStudyLevel AS dl ON dl.DiagnosticWorkId = dw.DiagnosticWorkId
WHERE Уровни подготовки != '-'
во вью нельзя использвоать алиасы таблиц DiagnosticWorkStudyLevel AS dl -- это не работает, не сделано. Надо везде писать поля и переименовывать поля типа dl_DiagnosticWorkId = dw_DiagnosticWorkId
Спасибо разобрался
А запрос работает если создать простой View?
выше ребята ответили в чем прикол, проблема с алиасами во вью
Обсуждают сегодня