Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Соединение двух таблиц с группировкой по значениям из 3-ей / 13 сообщений из 13, страница 1 из 1
27.05.2004, 16:13:56
    #32537095
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Есть две таблицы с одинаковой структурой (движения товаров).
Есть таблица-справочник (вес, кол-во в коробке, объем и тп.).

Нужно сгруппировать две таблицы по товару и посчитать общее кол, вес и тп.

Вариант такой выдает полный бред с количеством:
Код: plaintext
1.
2.
3.
4.
5.
6.
SELECT a.pn,SUM(a.quan),SUM(a.quan/c.quantity),SUM(a.quan*c.weight),SUM(a.quan*c.objem)
FROM Outcome a
LEFT OUTER JOIN ean_phc c on a.pn=c.pn
LEFT OUTER JOIN Income b ON a.pn=b.pn
WHERE a.pn=c.pn
GROUP BY a.pn
Такой вариант... FB1.5 засылают в ступор. Как правильно?
Код: plaintext
1.
2.
3.
4.
5.
SELECT a.pn,SUM(a.quan),SUM(a.quan/c.quantity),SUM(a.quan*c.weight),SUM(a.quan*c.objem)
FROM Outcome a, ean_phc c
LEFT OUTER JOIN Income b ON a.pn=b.pn
WHERE a.pn=c.pn
GROUP BY a.pn
...
Рейтинг: 0 / 0
27.05.2004, 16:24:17
    #32537126
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Не въехал честно говоря в то что нужно, но вроде как если две таблицы, то их не джойнить соединять надо, а объединять. И вобще, если таблицы одинаковые, то зачем их 2 штуки??
...
Рейтинг: 0 / 0
27.05.2004, 16:26:52
    #32537136
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Структура одинаковая - данные разные. Как их можно объединить, залезая при этом в таблицу-справочник?
...
Рейтинг: 0 / 0
27.05.2004, 16:58:23
    #32537227
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Похоже проблема именно с Join.
Такой запрос выдает 4708:
Код: plaintext
1.
2.
3.
4.
SELECT sum(a.quan)
FROM Income a
JOIN Outcome b ON a.pn=b.pn
WHERE a.pn like 'ALCOP10%'
У следующих двух результат по 214:
Код: plaintext
1.
2.
3.
SELECT sum(a.quan)
FROM Outcome a
WHERE a.pn like 'ALCOP10%'
Код: plaintext
1.
2.
3.
SELECT sum(a.quan)
FROM Income a
WHERE a.pn like 'ALCOP10%'

Где-то я конкретно туплю, кажется....
...
Рейтинг: 0 / 0
27.05.2004, 17:13:11
    #32537261
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Я не пойму, причём тут JOIN вобще? Тут UNION нужен - я же тебе писал. Раз не хочешь таблица объединять, делай общее представление на них, которое потом будет тормозить при использовании. Можно ХП чтобы она считала, но лучше таки таблицы постараться объединить.
...
Рейтинг: 0 / 0
27.05.2004, 17:27:04
    #32537304
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Gold , понимаешь в чем дело - у меня сначала ЮНИОН и было, но так как товары в таблицах повторяются - приходилось их на клиенте сворачивать, суммируя все показатели (вес объем и т.п.), а это очень долго.

Вот и хотел через join с группировкой, а как еще можно?
...
Рейтинг: 0 / 0
27.05.2004, 17:39:13
    #32537346
Малиновский Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
На этом же форуме есть книжка (перевод на русский):

М.Грабер. Понимание SQL:

http://www.sql.ru/docs/sql/u_sql/index.shtml

А еще я сегодня на Арбате, в Доме Книге (второй этаж) видел вариант перевода "Введение в SQL" называется. Стоит 264 рубля.

Я года два назад читал, лучше ничего пока не видел (в смысле - "сложные" конструкции SQL для тупых, типа меня).

Советую купить, легко читается даже за завтраком.
...
Рейтинг: 0 / 0
27.05.2004, 17:55:47
    #32537380
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Малиновский Владимир. Дорого купил - здесь 150 руб. с доставкой :)
А если серьезно - посоветуйте как сделать?
...
Рейтинг: 0 / 0
27.05.2004, 18:38:09
    #32537481
vis
vis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Решение "продвинутее" :)

Используй
Код: plaintext
1.
2.
3.
4.
CREATE VIEW <все_таблицы> AS
     SELECT ... FROM <таблица_1>
     UNION
     SELECT ... FROM <таблица_2>

и группируй
Код: plaintext
1.
2.
SELECT ... FROM <все_таблицы>
    GROUP BY <чё_надо>
...
Рейтинг: 0 / 0
27.05.2004, 18:50:30
    #32537497
Tonny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Если структуры обоих таблиц одинаковое, то слить всё в одну таблицу, добавив поле - признак: например, для первой таблицы оно равно 1, для второй - 2. тогда операции, которым надо обе таблицы сразу их и имеют, а всем остальным добавить проверку на признак.
...
Рейтинг: 0 / 0
28.05.2004, 09:37:56
    #32537986
Johnmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
автор
Похоже проблема именно с Join.
Такой запрос выдает 4708:
...
FROM Income a
JOIN Outcome b ON a.pn=b.pn
...
У следующих двух результат по 214:
...
Где-то я конкретно туплю, кажется....


Это говорит о том, что в таблице a присутствует 22 записи, соответствующих одной из b для 'ALCOP10%' .
...
Рейтинг: 0 / 0
31.05.2004, 11:04:44
    #32540611
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
2 vis.
Интересно, а как же
авторОдиночное представление должно основываться на одиночном запросе; ОБЪЕДИНЕНИЕ (UNION) и ОБЪЕДИНЕНИЕ ВСЕГО (UNIOM ALL) не разрешаются.
...
Рейтинг: 0 / 0
31.05.2004, 11:23:57
    #32540663
sYstEmiZer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Соединение двух таблиц с группировкой по значениям из 3-ей
Извиняюсь! Понял - все заработало! Файрберд ворева :)
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Соединение двух таблиц с группировкой по значениям из 3-ей / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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