Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Ping-vin
Guest
Я не уверен, что такого вопроса не било, но, сколько не старался не смог в “поиске” найти решение:
Имею Т1 Продали:
Иванов -Тов1-10
Иванов -Тов2-20
Петров--Тов2-40
Иванов –Тов6-10
Иванов –Тов8-40
Петров—Тов7-40
Петров—Тов8-20
Петров—Тов3-20

И имею чекбокс1

Не могу написать запрос на:

если чекбокс1=True
f1 это Иванов, f2 это Петров
-----------f1 ---- f2
Тов1----10--------
Тов2----20-----40
Тов3------------20
Тов4---------------
Тов5---------------
Тов6----10--------
Тов7------------40
Тов8----40-----20

если чекбокс1=False
f1 это сумма
------------f1 ---- f2
Тов1----10--------
Тов2----60--------
Тов3----20--------
Тов4---------------
Тов5---------------
Тов6----10--------
Тов7----40--------
Тов8----60--------

Заранее благодарю!
28 мар 06, 21:14    [2499525]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Alexander G
Member

Откуда: Чукчи мы, однако
Сообщений: 3270
В первом случае - это у вас, похоже, будет перекрестный запрос. Постройте его мастером. И почитайте хелп по поводу перекрестных запросов.
Во втором - простой запрос с группировкой. Строится в конструкторе за пару минут.
29 мар 06, 00:20    [2499870]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Ping-vin
Guest
Спасибо за ответ! Я поищу.
Второй вопрос, без слов, очень легкий (как и первый, для многих) и почему я про него написал, сам не знаю.

Да, пропустил, имеем еще Т2 Товар, коды товара:

Тов1
Тов2
Тов3
Тов4
Тов5
Тов6
Тов7
Тов8
...
29 мар 06, 02:14    [2499972]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Ping-vin
Guest
Вот, состряпал что-то, работает. Но может, поможете оптимизировать, проверите?


SELECT И.Кол, П.Кол FROM 
((select  П.Тов as П_ID, П.Кол from T1 П  WHERE П.Прод = 'Петров') as Петр RIGHT JOIN  
(T2  LEFT JOIN   (select  И.Тов as И_ID, И.Кол from T1 И  WHERE  И.Прод = 'Иванов') as Иван 
on  T2.Тов = Иван.И_ID)
on  T2. Тов =  Петр.П_ID)
29 мар 06, 13:56    [2501920]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Alexander G
Member

Откуда: Чукчи мы, однако
Сообщений: 3270
И что вы будете делать, когда появится третий продавец?
Вроде сказал, где копать.

К сообщению приложен файл (db1.rar - 14Kb) cкачать
30 мар 06, 00:18    [2504751]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Ping-vin
Guest
Я копал там, где вы сказали, многое понял и дико извиняюсь, что не написал об итогах.

А итоги таковы: я понял, что исходя из моей задачи, мне надо именно тот запрос (может отшлифованный вами, если поможете), который я написал выше, который выводит:
Вес список товара - продажи у т.н. Source - продажи у т.н. Gate
Значения Source и Gate выставляется программно.

Реальный запрос на такую выборку следующий:

SELECT И.Кол, П.Кол FROM 
((select  П.Тов as П_ID, П.Кол from T1 П  WHERE П.Прод = '” & Source & “') as Петр RIGHT JOIN  
(T2  LEFT JOIN   (select  И.Тов as И_ID, И.Кол from T1 И  WHERE  И.Прод = '” & Gate & “') as Иван 
on  T2.Тов = Иван.И_ID)
on  T2. Тов =  Петр.П_ID)
и он работает, но мне нужна ваша помощь. Нет ли лишних вложенных запросов внутри. Может, возможно, написать короче.
Т.е . задача для заранее выставленных Source и Gate получить их продажи на фоне всего перечня товара.
Огромное спасибо за то, что нашли время для примера!
30 мар 06, 01:43    [2504820]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Alexander G
Member

Откуда: Чукчи мы, однако
Сообщений: 3270
Не понял, кто вам мешает добавить WHERE в перекрестный запрос
TRANSFORM Sum(t1.Kol) AS [Sum-Kol]
SELECT t1.tov1, Sum(t1.Kol) AS [Итоговое значение Kol]
FROM t1
WHERE (((t1.Pr)="Иванов")) OR (((t1.Pr)="Петров"))
GROUP BY t1.tov1
PIVOT t1.Pr;
30 мар 06, 01:58    [2504832]     Ответить | Цитировать Сообщить модератору
 Re: По моему, LEFT JOIN и LEFT JOIN, но как не знаю  [new]
Ping-vin
Guest
Никто не мешает.
Спасибо большое!
30 мар 06, 02:29    [2504850]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить