Объединение таблиц с условием
Lastig
Дата: 04.02.2016 07:46:16
Приветствую всех.
Не могу решить небольшую задачку.
Есть две таблицы(мфц и тосп)
Нужно посчитать разницу кол-ва услуг м/у мфц и тосп.
Получилось сделать только вывод тех полей которые совпадают в таблице, а тех что не совпадает пишет пустой результат.
Прошу помощи. Базу приложил.
Лапух
Дата: 04.02.2016 08:08:57
Скорее всего у вас некоторые поля пустые, тогда их нужно обрамить в Nz, как то примерно вот так:
SELECT DISTINCT мфц.Услуга, Nz([мфц]![Количество],0)-Nz([тосп]![Количество],0) AS Разница
FROM мфц LEFT JOIN тосп ON мфц.Услуга = тосп.Услуга;
Lastig
Дата: 04.02.2016 08:32:55
спасибо за помощь.
тут усложнили задачу, у нас несколько таких тоспов
пробую сначала суммировать тоспы а потом вычитать из мфц, опять нулевые строки выводит
и при суммировании количества услуг в тоспах тоже выодит не все значения
Лапух
Дата: 04.02.2016 08:41:03
Lastig,
Архив, чей та не открывается.
Наверное сначала нужно в одном запросе сложить все тоспы, а потом данный запрос указывать во втором запросе вместо первой таблицы?
Lastig
Дата: 04.02.2016 08:46:42
суммирование тоспов тоже не все строки выводит
Лапух
Дата: 04.02.2016 09:00:22
Lastig,
Зачем столько однотипных таблиц?
Я бы вот наверное в табл. тосп добавил еще 1 поле, - Тип или Номер и групприровал по нему.
Lastig
Дата: 04.02.2016 09:01:40
это мне присылают из разных районов таблицы с отчетами и мне их надо объединить
Лапух
Дата: 04.02.2016 09:13:11
Lastig,
А если их будет 100 районов? трудно представить.
Ну да вот накидал, может так:
Точно или нет, сказать не могу, т. к. у меня Акс 2000 и не все Аксы 2007-10 открываются, делал в конструкторе.
Лапух
Дата: 04.02.2016 09:16:18
Чей та файл не приложился.
Попробуйте создать такие 2 запроса:
Тоспы
SELECT тосп.Услуга, Nz([тосп]![Количество],0)+Nz([тосп2]![Количество],0)+Nz([тосп3]![Количество],0)+Nz([тосп4]![Количество],0) AS Сумма
FROM ((тосп LEFT JOIN тосп2 ON тосп.Услуга=тосп2.Услуга) LEFT JOIN тосп3 ON тосп2.Услуга=тосп3.Услуга) LEFT JOIN тосп4 ON тосп3.Услуга=тосп4.Услуга;
и
Разница
SELECT DISTINCT мфц.Услуга, Nz([мфц]![Количество],0)-(Nz([Тоспы]![Сумма],0)) AS Разница
FROM мфц LEFT JOIN Тоспы ON мфц.Услуга = Тоспы.Услуга;
Lastig
Дата: 04.02.2016 09:29:45
SELECT тосп.Услуга, Nz([тосп]![Количество],0)+Nz([тосп2]![Количество],0)+Nz([тосп3]![Количество],0)+Nz([тосп4]![Количество],0) AS Сумма
FROM ((тосп LEFT JOIN тосп2 ON тосп.Услуга=тосп2.Услуга) LEFT JOIN тосп3 ON тосп2.Услуга=тосп3.Услуга) LEFT JOIN тосп4 ON тосп3.Услуга=тосп4.Услуга;
так считает только те усдуги которе есть в 1 таблице(тосп) их там 19
а во второй уже 22, но итоговая все равно 19