powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция Count в запросе с подчиненными таблицами
11 сообщений из 11, страница 1 из 1
Функция Count в запросе с подчиненными таблицами
    #32421283
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, есть такая проблема, сам додумать не могу, что-то шарики за ролики заскакивают.

Суть в следующем:
Есть таблица (ГлавТаб), к ней присоединена еще таблица (ПодчТаб1), которой присоединена еще таблица (ПодчТаб2).

ГлавТаб
|
--ПодчТаб1
|
-----ПодчТаб2

На основе всех 3х таблиц строится запрос с Групповыми операциями. Там что-то группируется, что-то считается, что-делиться и тд.

Проблема в том, что нужно получить кол-во записей в ГлавТаб сгуппированные по одному из полей. Включаю "Групповые операции", выбираю Count по полю id , и "Группировка" по полю "Name" Беда в том, что в итоге получается число которое включает в себя кол-во подчиненных записей в ПодчТаб2.

Например:
ГлавТаб содержит поля: [id] [Name] ПодчТаб1 содержит две подчиненные записи (по отношению к ГлавТаб): [id1] [id] [Name1]
ПодчТаб2 содержит три подчиненные записи (по отношению к ПодчТаб1): [id2] [id1] [Name2]
Так вот в запросе с "Групповыми операциями" при группировке по [Name] и выборе Count по полю [id] из ГлавТаб запрос выдает 3, тогда как нужно чтобы выдавал 1.
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421864
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну где вы монстры Access'a???
Все молчат :-(
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421876
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без обид... ок?
ты сам прочитай, что написал... меня лично сколболсило ещё до примера...
>Там что-то группируется, что-то считается, что-делиться и тд.
наверное где-то здесь ошибся...

>Включаю "Групповые операции", выбираю Count по полю id, и "Группировка"
>по полю "Name" Беда в том, что в итоге получается число которое включает
>в себя кол-во подчиненных записей в ПодчТаб2.

при использовании Count "Группировка" выставляеться автоматом по всем остальным полям... если я конечно тебя правильно понял

ты бы примеры что называеться живые привёл...
какие и где данные были и что на выходе хочешь получить... тогда глядишь и монстры подтянуться :)

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421916
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OK, без обид.
Попытаюсь объяснить поподробнее.

Таблица "tblOrder" содержит записи об отправках груза. Поля: idOrder (тип Счетчик), From, Where, Cost, TranspType (вид транспорта: а/м, ж/д)

Таблица "tblInvoice" связана с таблицей "tblOrder" по полю idOrder и содержит данные о номерах накладных, входящих в заказ (в один заказ может входить несколько накладных). Поля: idInvoice (тип Счетчик), idOrder, Invoice.

Таблица "tblGoods" связана с таблицей "tblInvoice" по полю idInvoice и содержит данные о товарах входящих в накладную (в одну накладную может входить несколько товаров). Поля idLine (тип Счетчик), idInvoice, idFG (подцепляет запись товара из табл. "tblFG"), Quantity.

Когда формируется заказ на отправку, заполняются все указанные поля, т.е. в каждом конкретном заказе мы знаем, Что, Куда, Откуда и сколько уехало и как уехало.

Теперь требуется создать запрос отвечающий на вопрос: сколько товара уехало по всем городам, по видам транспорта.
Иначе, нам нужен запрос с групповыми операциями, который бы, группировал все отправки по городам и по виду транспорта, а также считал сколько транспортных средств уехало в каждый конкретный город, общую сумму издержек по отправкам в каждый город.
Проблема в том как подсчитать кол-во транспортных средств: по идее каждая строчка в "tblOrders" - это одно транспортное средство. Поэтому на надо просто подсчитать кол-во idOrder в запросе через Count и дело в шляпе.

Делаем запрос и получаем следующее:
Группировака по видам транспортного средства - ОК
Группировака по городу - ОК
Сумма издержек - ОК
Кол-во транспортных средств - беда.
Дело в том, что если, например, в Урюпинск у нас ехала одна машина, в которой лежало 2 накладных, а каждой из них было по два вида товара, то Count выдает 4, хотя реально ехала одна машина.

Как сделать так, чтобы он правильно считал?






Best Regards
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421927
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дополнение,

кстати, случайно обнаружил, что и "Сумма издержек" тоже суммируется неправлильно.
Т.е. если в Урюпинск ехала 1 машина с 2мя накладными и в каждой было по одному виду товара, а стоимость доставки 1000руб. То в суммировании запрос выдает 2000руб.

Вот такие грустные дела.

Best Regards
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421934
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем в запрос цеплять данные подчиненных таблиц? Или нужно вывести что-то еще кроме перечисленного?
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421939
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, к сожалению данные из подчиненных таблиц просто необходимы. Без них как раз все работает, но без них никак нельзя.

Может проблему можно решить через 2 запроса, один с подчинными таблицами, другой без и третий их объединяет.
Сейчас работаю над этим, но пока без успехов.

Best Regards
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421947
fgh11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Option Compare Database
Option Explicit

Dim cursum As Double
Dim curind As Long

' В запросе вызываешь функцию getcursum(idOrder)

Public Function getcursum(ind As Long) As Double
If curind <> ind Then
curind = ind
cursum = cursum + 1
End If
getcursum = cursum
End Function

Public Function setCurSum()
cursum = 0
curind = 0
End Function
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421962
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извени если что-то не догнал, но насколько я понял что нихде, не пишется сколько машин занято на конкретный Order...

>Дело в том, что если, например, в Урюпинск у нас ехала одна машина, в
>которой лежало 2 накладных, а каждой из них было по два вида товара, то
>Count выдает 4, хотя реально ехала одна машина.

я думаю доступен и обратный вариант...
Order - один а машины две... наверное поле надо будет вводить...
но если на определённый горол по-любому идёт одна машина в какой то отрезок времени тогда просто в селекте надо считать города, за определённый отрезок времени

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32421997
novss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Sfagnum:
одна отправка = одна запись в tblOrder = одно транспортное средство.
Отдельного поля для записи кол-ва транспортных средств нету.

Попробовал по сделать Count по городам, таже беда.


Best Regards
...
Рейтинг: 0 / 0
Функция Count в запросе с подчиненными таблицами
    #32422496
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну батенька, коли так то звиняйте, 2 как 1 посчитать никак...

>Попробовал по сделать Count по городам, таже беда.

SELECT Count([Where]) As [Where] FROM tblOrder
- не тот результат выдаёт?

Сделать можно всё!!!
Только бы знать как...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Функция Count в запросе с подчиненными таблицами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]