#sql #ms-access
#sql #ms-access
Вопрос:
Пожалуйста, помогите,
Я пытаюсь выполнить запрос для MsAccess с подключением odbc со страницы PHP.
У меня есть эта таблица (table1)
class quantity date
1 30 01/04/2014
2 23 01/04/2014
3 23 01/04/2014
4 14 01/04/2014
5 5 01/04/2014
1 41 01/05/2014
2 38 01/05/2014
3 36 01/05/2014
4 28 01/05/2014
5 25 01/05/2014
6 1 01/05/2014
Пожалуйста, помогите запросу получить этот результат :
class quantity date
1 30 01/04/2014
2 23 01/04/2014
3 23 01/04/2014
4 14 01/04/2014
5 5 01/04/2014
6 0 0
1 41 01/05/2014
2 38 01/05/2014
3 36 01/05/2014
4 28 01/05/2014
5 25 01/05/2014
6 1 01/05/2014
В выходных данных будет отображаться 0 как количество для класса 6, у которого фактически нет записи для класса 6 на 04.01.2014.
Комментарии:
1. Это действительно таблица или это запрос? Откуда вы знаете, что нужно иметь 6, а не 7 или 8 классов?
2. Выше приведена таблица в Microsoft Access, обычно у меня в базе данных от 1 до 6 классов, и нет записи с классом 6 за 4 месяц (апрель). В выходных данных мне нужно, чтобы все значения класса выдавали минимальное значение 0 в каждом классе.
Ответ №1:
Вы могли бы сделать это с union all
. Но более общее решение заключается в следующем:
select c.class, d.date, nz(t1.quantity, 0)
from ((select distinct class from table1) as c cross join
(select distinct date from table1) as d
) left join
table1 as t1
on t1.class = c.class and t1.date = d.date
Комментарии:
1. Спасибо, <br /> но я все еще получил эту ошибку: odbc_exec (): ошибка SQL: [Microsoft] [ODBC Драйвер Microsoft Access] Синтаксическая ошибка в операции объединения