crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Непонятная работа UNION
NetWorm
  опции профиля:
сообщение 12.11.2011, 20:53
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 24
Регистрация: 2.8.2011
Пользователь №: 2784

Спасибо сказали: 0 раз(а)




Репутация:   0  


SELECT
   materials.name AS material,
   SUM(o_sklad.count) AS count,
   ed_izm.name AS ed_izm,
   0 AS count2
FROM
   o_sklad,
   materials,
   ed_izm
WHERE
   o_sklad.id_material = materials.id
   AND materials.id_ed_izm = ed_izm.id
   AND o_sklad.date <'01.11.2011'
GROUP BY
   materials.name,
   ed_izm.name

   UNION ALL

SELECT
   materials.name AS material,
   SUM(0) AS count,
   ed_izm.name AS ed_izm,
   SUM(o_sklad.count) AS count2
FROM
   o_sklad,
   materials,
   ed_izm
WHERE
   o_sklad.id_material = materials.id
   AND materials.id_ed_izm = ed_izm.id
   AND o_sklad.date <'30.11.2011'
GROUP BY
   materials.name,
   ed_izm.name


И в результате возвращаются двойные строки. т.е. он не объединяет SUM(0) AS count2 из первого запроса и SUM(o_sklad.count) AS count2. Короче мне нужно получить одну таблицу с результатами двух запросов
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 12.11.2011, 23:57
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(NetWorm @ 12.11.2011, 23:53) *
Короче мне нужно получить одну таблицу с результатами двух запросов

UNION просто склеивает результаты в одну таблицу.

для объединения используется JOIN и запрос конструируется более хитро.

но в данном случае вообще непонятен сам смысл задачи: зачем-то часть записей два раза вытаскивается (сначала с нулями, потом - с какими-то суммами), а другая часть - один раз. так что я даже затрудняюсь сказать, как это лучше решить, потому что просто не вижу смысла в суммировании нулей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 3:15