Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Select from select, выборка из итоговой таблицы 
:(
    Опции темы
andriy89
Дата 21.9.2011, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2011

Репутация: нет
Всего: нет



Добрый вечер! Есть ли возможность группировать данные по итоговой таблице, полученной с помощью select в одном запросе ?

Есть 2 таблицы:
1) Клиенты с полями: idPer, Name, City
2) Заказы c полями: idOrd, OrderNo, idPer, OrderPricе

Необходимо вначале вывести всех клиентов и их заказы, и сразу же в итоговой таблице сгруппировать сумму заказов по каждому клиенту. Попробовал что-то типа:

Код

SELECT a.Name, SUM(o.OrderPrice)
FROM (SELECT a.Name, a.City, o.OrderNo, o.OrderPrice
FROM Per a
JOIN Ord o
ON a.idPer = o.idPer)
GROUP BY a.Name


Не работает.

И еще вопрос: как по итоговой таблице можно удалить строку (столбец) ?
PM MAIL   Вверх
Akina
Дата 21.9.2011, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(andriy89 @  21.9.2011,  20:58 Найти цитируемый пост)
Необходимо вначале вывести всех клиентов и их заказы, и сразу же в итоговой таблице сгруппировать сумму заказов по каждому клиенту.

Два запроса. Да к тому же с разным количеством полей. Не надо их в кучу... запроси отдельно, а на клиенте собери при выводе.

Цитата(andriy89 @  21.9.2011,  20:58 Найти цитируемый пост)
как по итоговой таблице можно удалить строку (столбец) ? 

Вопрос непонятен.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
andriy89
Дата 21.9.2011, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2011

Репутация: нет
Всего: нет



Цитата(Akina @ 21.9.2011,  20:20)
Цитата(andriy89 @  21.9.2011,  20:58 Найти цитируемый пост)
Необходимо вначале вывести всех клиентов и их заказы, и сразу же в итоговой таблице сгруппировать сумму заказов по каждому клиенту.

Два запроса. Да к тому же с разным количеством полей. Не надо их в кучу... запроси отдельно, а на клиенте собери при выводе.

Цитата(andriy89 @  21.9.2011,  20:58 Найти цитируемый пост)
как по итоговой таблице можно удалить строку (столбец) ? 

Вопрос непонятен.


1) А если все-таки одним запросом, то возможно ли реализовать это ?

2) Уточню вопрос: мы сделали запрос SELECT. Вывелась результирующая таблица. Можно ли из этой таблицы удалить строку (столбец), используя этот же запрос SELECT (т.е. опять получается два запроса в одном) ?
PM MAIL   Вверх
Akina
Дата 21.9.2011, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(andriy89 @  21.9.2011,  21:23 Найти цитируемый пост)
возможно ли реализовать это ?

как ты себе это представляешь?

Цитата(andriy89 @  21.9.2011,  21:23 Найти цитируемый пост)
Можно ли из этой таблицы удалить строку (столбец), используя этот же запрос SELECT 

нет




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
andriy89
Дата 21.9.2011, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2011

Репутация: нет
Всего: нет



Цитата(Akina @ 21.9.2011,  22:06)
Цитата(andriy89 @  21.9.2011,  21:23 Найти цитируемый пост)
возможно ли реализовать это ?

как ты себе это представляешь?

Цитата(andriy89 @  21.9.2011,  21:23 Найти цитируемый пост)
Можно ли из этой таблицы удалить строку (столбец), используя этот же запрос SELECT 

нет

я поэтому и спрашиваю smile я не представляю, как это можно выразить одним запросом.
PM MAIL   Вверх
rodnover
Дата 22.9.2011, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



union считается одним запросом?

Код

SELECT a.Name as Customer, a.City, o.OrderNo, o.OrderPrice
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
union
SELECT a.Name as Customer, a.City, o.OrderNo, sum(o.OrderPrice)
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
group by  a.Name, a.City, o.OrderNo
order by Customer


или

Код

SELECT a.Name as Customer, a.City, o.OrderNo, o.OrderPrice
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
union
SELECT concat(a.Name, ' (итого)') as Customer, null, null, sum(o.OrderPrice)
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
group by  a.Name
order by Customer


Это сообщение отредактировал(а) rodnover - 22.9.2011, 07:44
PM MAIL   Вверх
andriy89
Дата 22.9.2011, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 2.5.2011

Репутация: нет
Всего: нет



Цитата(rodnover @ 22.9.2011,  07:43)
union считается одним запросом?

Код

SELECT a.Name as Customer, a.City, o.OrderNo, o.OrderPrice
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
union
SELECT a.Name as Customer, a.City, o.OrderNo, sum(o.OrderPrice)
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
group by  a.Name, a.City, o.OrderNo
order by Customer


или

Код

SELECT a.Name as Customer, a.City, o.OrderNo, o.OrderPrice
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
union
SELECT concat(a.Name, ' (итого)') as Customer, null, null, sum(o.OrderPrice)
FROM Per a
JOIN Ord o ON a.idPer = o.idPer
group by  a.Name
order by Customer

это один запрос, но в итоговой таблице будут результаты первого + второго запроса.
PM MAIL   Вверх
rodnover
Дата 22.9.2011, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



Цитата(andriy89 @  22.9.2011,  13:34 Найти цитируемый пост)
это один запрос, но в итоговой таблице будут результаты первого + второго запроса. 

И? 
Нужно чтобы в 2х разных отображаемых таблицах были подобные сведения? тогда либо 2 запроса, либо к средствам языка на котором реализуется отображение данных.

Код

указываем на первую запись выборки

пока записи не кончились
начало
    если выполнилась проверка нужной строки или столбца то
    начало
        выводим ее
    конец
    выбираем следующую запись
конец

//отображаем в другом месте по другому
опять указываем на первую запись выборки

пока записи не кончились
начало
    если выполнилась другая проверка нужной строки или столбца то
    начало
        выводим ее
    конец
    выбираем следующую запись
конец



Это сообщение отредактировал(а) rodnover - 22.9.2011, 10:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.