Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для «создания» данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: SELECT со значениями без таблицы? Мне нужно отобразить общее количество «заказов» за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы сделать вспомогательную таблицу «...
Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для "создания" данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: SELECT со значениями без таблицы? Мне нужно отобразить общее количество «заказов» за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы сделать вспомогательную таблицу «...
Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для "создания" данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: заказов на каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы сделать вспомогательную таблицу «...
Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для «создания» данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: заказов на каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы сделать вспомогательную таблицу «...
Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для "создания" данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: Я мог бы сделать вспомогательную таблицу «...
Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для «создания» данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: Я мог бы сделать вспомогательную таблицу «...
Мне нужно отобразить общее количество« заказов »за каждый год и месяц. Но в течение нескольких месяцев данных нет, но я НЕ хочу отображать этот месяц (с общим значением ноль). Я мог бы создать вспомогательную таблицу месяцев с 12 записями на каждый год, но есть ли способ получить диапазон месяцев, не вводя новую таблицу?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать сделай это? Можете ли вы использовать SELECT с какой-либо формулой для "создания" данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: но есть ли способ получить диапазон месяцев без введения новой таблицы?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать? Можете ли вы использовать SELECT с какой-либо формулой для "создания" данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: но есть ли способ получить диапазон месяцев без введения новой таблицы?
Что-то вроде:
SELECT [all year-month combinations between january 2000 and march 2011]
FROM DUAL AS years_months
Кто-нибудь знает, как это сделать? Можете ли вы использовать SELECT с какой-либо формулой для "создания" данных на лету?!
ОБНОВЛЕНИЕ:
Я нашел это: генерировать дни из диапазона дат
Принятый ответ на этот вопрос - это то, что я ищу. Может быть, это не самый простой метод, но он делает то, что я хочу: заполнять выделение данными на основе формулы ....
Чтобы «создать» таблицу на лету со всеми месяцами за последние 10 лет:
SELECT CONCAT(MONTHNAME(datetime), ' ' , YEAR(datetime)) AS YearMonth,
MONTH(datetime) AS Month,
YEAR(datetime) AS Year
FROM (
select (curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) MONTH) as datetime
from (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as a
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as b
cross join (select 0 as a union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) as c
LIMIT 120
) AS t
ORDER BY datetime ASC
] Должен признать, это ОЧЕНЬ экзотично, но оно ДЕЙСТВИТЕЛЬНО работает ...
Я могу использовать этот выбор, чтобы присоединить его к моей таблице заказов и получить итоги за каждый месяц, даже если в нем нет данных определенный месяц.
Но использование таблицы "чисел" или "календаря", вероятно, лучший вариант, поэтому я собираюсь использовать это.