#sql #h2
#sql #h2
Вопрос:
Я пытаюсь ПЕРЕКРЕСТНО ОБЪЕДИНИТЬ два простых результата запроса в базе данных H2:
SELECT *
FROM
(
SELECT DISTINCT CATEGORY
FROM GENERIC_RECORD
)
CROSS JOIN
(
SELECT CAST( MONTH(LOCAL_DATE) AS VARCHAR(2)) || '-' || CAST(YEAR(LOCAL_DATE) AS VARCHAR(4)) AS DATE
FROM GENERIC_RECORD
GROUP BY CAST( MONTH(LOCAL_DATE) AS VARCHAR(2)) || '-' || CAST(YEAR(LOCAL_DATE) AS VARCHAR(4))
)
Но я получаю сообщение об ошибке:
Syntax error in SQL statement "SELECT
((CAST(MONTH(""LOCAL_DATE"") AS VARCHAR(2)) || '-') || CAST(YEAR(""LOCAL_DATE"") AS VARCHAR(4))) AS ""DATE""
FROM ""PUBLIC"".""GENERIC_RECORD""
GROUP BY (CAST(MONTH(""LOCAL_DATE"") AS VARCHAR(2)) || '-') ||[*] CAST(YEAR(""LOCAL_DATE"") AS VARCHAR(4))"; SQL statement:
CREATE FORCE VIEW (
SELECT
((CAST(MONTH("LOCAL_DATE") AS VARCHAR(2)) || '-') || CAST(YEAR("LOCAL_DATE") AS VARCHAR(4))) AS "DATE"
FROM "PUBLIC"."GENERIC_RECORD"
GROUP BY (CAST(MONTH("LOCAL_DATE") AS VARCHAR(2)) || '-') || CAST(YEAR("LOCAL_DATE") AS VARCHAR(4))
) AS
SELECT
((CAST(MONTH("LOCAL_DATE") AS VARCHAR(2)) || '-') || CAST(YEAR("LOCAL_DATE") AS VARCHAR(4))) AS "DATE"
FROM "PUBLIC"."GENERIC_RECORD"
GROUP BY (CAST(MONTH("LOCAL_DATE") AS VARCHAR(2)) || '-') || CAST(YEAR("LOCAL_DATE") AS VARCHAR(4)) [42000-200] 42000/42000 (Help)
Одиночные вложенные выборки работают просто отлично, но не при объединении.
Я хотел бы получить таблицу со столбцами {КАТЕГОРИЯ, ДАТА}, где каждая отдельная категория связана с каждым месяцем
Комментарии:
1. Я бы предположил, что вам нужны псевдонимы таблиц.
2. Почему бы не ВЫБРАТЬ DISTINCT вместо GROUP BY и во втором подзапросе?
3. @GordonLinoff Я думаю, что мне нужно сделать одну единственную строку, поскольку я использую JPA
4. @jarlh Потому что это лишь небольшая часть большего запроса, который мне нужно сделать