Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft Access |
![]() ![]() |
Serg197311 Member Откуда: Сообщений: 339 |
SELECT MAIN.CODE, techproc.cm1, MAIN.COMMENT, MAIN.MARKA, matsuP.mqq, mun.measun FROM.......... WHERE............ GROUP BY MAIN.CODE, techproc.cm1, MAIN.COMMENT, MAIN.MARKA, matsuP.mqq, mun.measun; Беру я из этого запроса несколько строк с одинаковым MAIN.CODE, суммирую руками matsuP.mqq и получаю некую цифру Убираю одно поле и ставлю sum SELECT MAIN.CODE, MAIN.COMMENT, MAIN.MARKA, Sum(matsuP.mqq) AS [Sum-mqq], mun.measun FROM.......... WHERE ........ GROUP BY MAIN.CODE, MAIN.COMMENT, MAIN.MARKA, mun.measun; И в строке с нужным MAIN.CODE получаю бред - цифра на порядок больше посчитанной руками.... Что я делаю не так? |
20 сен 18, 08:58 [21680290] Ответить | Цитировать Сообщить модератору |
Serg197311 Member Откуда: Сообщений: 339 |
Причем, если я выберу другой MAIN.CODE,то там складывает правильно..... |
20 сен 18, 09:11 [21680300] Ответить | Цитировать Сообщить модератору |
Serg197311 Member Откуда: Сообщений: 339 |
Еще - формат mqq - двойное с плавающей точкой, и неправильно считает там где есть цифры после запятой, целые числа складывает правильно... |
20 сен 18, 09:16 [21680303] Ответить | Цитировать Сообщить модератору |
Akina Member Откуда: Зеленоград, Москва, Россия Сообщений: 18446 |
А во FROM случайно нет ли нескольких таблиц? Видишь ли, если связываешь пару таблиц, и в каждой по 2 записи - в итоге ты получишь 4 записи, и сумма будет кратно увеличена. Посему надо суммировать в подзапросе по одной таблице, а уж потом к ней привязывать остальные.
|
||||
20 сен 18, 09:29 [21680315] Ответить | Цитировать Сообщить модератору |
Serg197311 Member Откуда: Сообщений: 339 |
FROM (MAIN1 INNER JOIN (spztmp INNER JOIN techproc ON spztmp.cdtp = techproc.cm1) ON MAIN1.code = spztmp.codm1) INNER JOIN (mun INNER JOIN (MAIN INNER JOIN matsuP ON MAIN.CODE = matsuP.codm) ON mun.code = MAIN.Mun) ON techproc.code = matsuP.codetp |
||
20 сен 18, 09:33 [21680318] Ответить | Цитировать Сообщить модератору |
Serg197311 Member Откуда: Сообщений: 339 |
Ага..... Щас попробуем.... |
||
20 сен 18, 09:34 [21680319] Ответить | Цитировать Сообщить модератору |
Serg197311 Member Откуда: Сообщений: 339 |
SELECT Sum(matsuP.mqq) AS [Sum-mqq], MAIN.CODE FROM MAIN INNER JOIN matsuP ON MAIN.CODE = matsuP.codm WHERE (((matsuP.codetp) In (SELECT techproc.code FROM techproc INNER JOIN (MAIN1 INNER JOIN spztmp ON MAIN1.code = spztmp.codm1) ON techproc.cm1 = spztmp.cdtp WHERE (((MAIN1.sernn)=[Формы]![spzcr]![serc])) GROUP BY techproc.code;))) GROUP BY MAIN.CODE; Асилел ![]() |
20 сен 18, 10:12 [21680371] Ответить | Цитировать Сообщить модератору |
Serg197311 Member Откуда: Сообщений: 339 |
А вопрос остался.... почему неправильный запрос правильно суммировал целые цифры..... |
20 сен 18, 10:47 [21680429] Ответить | Цитировать Сообщить модератору |
Игортан Member Откуда: Беларусь Сообщений: 872 |
Serg197311, они могли совпадать, тогда соединение получалось "правильно" зависит все от уникальности всех строк |
20 сен 18, 11:20 [21680502] Ответить | Цитировать Сообщить модератору |
sdku Member Откуда: Краснодар Сообщений: 5510 |
|
||
20 сен 18, 11:58 [21680584] Ответить | Цитировать Сообщить модератору |
sdku Member Откуда: Краснодар Сообщений: 5510 |
вернее не тип, а формат |
20 сен 18, 12:23 [21680614] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft Access | ![]() |