Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема объединения (LEFT JOIN) 3-х таблиц / 6 сообщений из 6, страница 1 из 1
26.10.2015, 10:37
    #39086487
Евген987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема объединения (LEFT JOIN) 3-х таблиц
Вот запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT a.prodID, a.prodName, c.Quantity, 
                                    SUM (IIF(b.operName='realiz', b.Quantity, 0)) AS Realiz,
                                    SUM (IIF(b.operName='prihod', b.Quantity, 0)) AS Prihod,
                                    SUM (IIF(b.operName='spisanie',  b.Quantity, 0)) AS Spisanie,
                                    SUM (IIF(b.operName='vozvrat', b.Quantity, 0)) AS Vozvrat
FROM   (((products a)
LEFT JOIN  operations b ON a.prodID = b.prodID)
LEFT JOIN  remains c ON a.prodID=c.prodID)
WHERE c.periodID=1
GROUP BY a.prodName,a.prodID,c.Quantity



Когда таблицу operations добавляю к products, то она как надо добавляется (количество записей рекордсета products не обрезается до количества записей operations). А вот когда добавляется таблица remains с условием c.periodID=1, то рекордсет обрезается до количества записей удовлетворяющих условию "
Код: sql
1.
WHERE c.periodID=1

"
Как сделать, чтобы значения добавлялись в имеющиеся поля без урезания рекордсета ?
...
Рейтинг: 0 / 0
26.10.2015, 11:02
    #39086523
8087
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема объединения (LEFT JOIN) 3-х таблиц
Код: sql
1.
LEFT JOIN  remains c ON a.prodID=c.prodID and c.periodID=1)
...
Рейтинг: 0 / 0
26.10.2015, 11:14
    #39086548
Евген987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема объединения (LEFT JOIN) 3-х таблиц
8087,
...
Рейтинг: 0 / 0
26.10.2015, 11:25
    #39086574
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема объединения (LEFT JOIN) 3-х таблиц
Евген987когда добавляется таблица remains с условием c.periodID=1
При наложении условия на таблицу справа левое связывание превращается во внутреннее.
Можно делать влоб
Код: vbnet
1.
WHERE (c.periodID=1 OR c.periodID IS NULL)


а можно просто не жадничать со скобками
Код: vbnet
1.
LEFT JOIN  remains c ON ((a.prodID=c.prodID) and (c.periodID=1))
...
Рейтинг: 0 / 0
26.10.2015, 11:31
    #39086585
Проблема объединения (LEFT JOIN) 3-х таблиц
Евген987
Код: sql
1.
2.
LEFT JOIN  remains c ON a.prodID=c.prodID)
WHERE c.periodID=1


Замените на
Код: plsql
1.
LEFT JOIN  (SELECT * FROM remains WHERE remains.periodID=1) As c ON a.prodID=c.prodID)
...
Рейтинг: 0 / 0
26.10.2015, 11:46
    #39086614
Евген987
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема объединения (LEFT JOIN) 3-х таблиц
Анатолий ( Киев ),
СПАСИБО БОЛЬШУЩЕЕ !!!
Ваша конструкция сработала !!!
ВЫРУЧИЛИ !!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема объединения (LEFT JOIN) 3-х таблиц / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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