У меня есть список удостоверений личности и даты, когда они произошли.
id|date
1 |2019-01-22
2 |2019-02-13
etc
Я хочу иметь таблицу, которая просто перечисляет ID по месяцам. я имею
SELECT
'a'.'sourceID' AS 'Jan 2019'
FROM
'all_dates' 'a'
WHERE
((MONTH('a'.'next1') = 1)
AND (YEAR('a'.'next1') = 2019))
Как один столбец, я хочу 12 столбцов для каждого месяца в 2019 году. Мне не нужен союз (насколько я могу судить). Я не уверен, что я просто ввел неправильный синтаксис для подзапроса или мне нужно использовать соединение или что.
(SELECT
'a'.'sourceID'
FROM
'all_dates' 'a'
WHERE
((MONTH('a'.'next1') = 1)
AND (YEAR('a'.'next1') = 2019))) AS 'Jan 2019',
(SELECT
'a'.'sourceID'
FROM
'all_dates' 'a'
WHERE
((MONTH('a'.'next1') = 2)
AND (YEAR('a'.'next1') = 2019))) AS 'Feb 2019'
Я получаю ошибку "подзапрос возвращает более 1 строки" с выше. Я на правильном пути и мне просто нужно это почистить, или я должен заняться чем-то другим?
Результат, который я хочу, должен выглядеть следующим образом
|jan-2019|feb-2019
| 1 |2
| 4 |3
и т.п.
Следующий запрос является косвенным, также выход имеет нулевые значения, которые не удовлетворяют условию, попробуйте
SELECT
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '01') THEN 'jkk'.'id'
ELSE NULL
END) AS 'jan_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '02') THEN 'jkk'.'id'
ELSE NULL
END) AS 'feb_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '03') THEN 'jkk'.'id'
ELSE NULL
END) AS 'mar_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '04') THEN 'jkk'.'id'
ELSE NULL
END) AS 'apr_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '05') THEN 'jkk'.'id'
ELSE NULL
END) AS 'may_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '06') THEN 'jkk'.'id'
ELSE NULL
END) AS 'jun_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '07') THEN 'jkk'.'id'
ELSE NULL
END) AS 'jul_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '08') THEN 'jkk'.'id'
ELSE NULL
END) AS 'aug_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '09') THEN 'jkk'.'id'
ELSE NULL
END) AS 'sep_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '10') THEN 'jkk'.'id'
ELSE NULL
END) AS 'oct_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '11') THEN 'jkk'.'id'
ELSE NULL
END) AS 'nov_2019',
(CASE
WHEN (SUBSTR('jkk'.'dd', 6, 2) = '12') THEN 'jkk'.'id'
ELSE NULL
END) AS 'dec_2019'
FROM
'tablename';