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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SQL запрос, нужна помощь в построение 
:(
    Опции темы
Cashey
  Дата 2.2.2005, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


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

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



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

Схема такая:
Есть много товаров, у них множество модификаций, у каждой модификации есть цена, которая м. б. в разных валютах. У меня есть основная валюта, задается условием пользователем, и базовая - рубли.
Требуется получит в результирующем наборе все модификации которые:
1. Если у товара, хоть в одной из его модификаций, есть цена в запрашиваемой валюте, то надо получить только такие модификации.
2. Если ни в одной из модификаций нет цены в такой валюте, то надо вытащить все модификации в рублях, если они есть.
3. Если нет модификаций ни в основной валюте, ни в рублях, то вытащить все модификации этого товара.

Разумеется весь этот отбор осуществляется внутри группы (товара)

Иллюстрация: есть таблица

__________Мод1_____руб
Товар1____Мод2______дол
__________Мод3_____евро

__________Мод21____дол
Товар2_____Мод22____дол
__________Мод23____дол

__________Мод31____руб
Товар3_____Мод32____евро
__________Мод33____евро

__________Мод41_____руб
Товар4_____Мод42____руб
__________Мод43_____дол

Основная валюта - евро
В результирующюю таблицу должны попасть:

Товар1_____Мод3

___________Мод21
Товар2______Мод22
___________Мод23

Товар3_____Мод32
___________Мод33

___________Мод41
Товар4______Мод42


Не надо упрекать меня в ламерстве и непрофессионализме, если кто может и хочет просто помогите получить запрос на классическом SQL

Это сообщение отредактировал(а) Cashey - 2.2.2005, 20:37


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
igon
Дата 3.2.2005, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если еще актуально:
Код

Select Item, Modification
 From myTable A
 Where A.Currency = 'euro'
Union
Select Item, Modification
 From myTable A
 Where Item Not In (Select Item
                      From myTable A
                      Where A.Currency = 'euro'
                    ) And
       (Item, Modification) In (Select Item, Modification
                                  From myTable A
                                  Where A.Currency = 'rub'
                               )
Union
Select Item, Modification
 From myTable A
 Where Item Not In (Select Item
                      From myTable A
                      Where A.Currency = 'euro' Or
                            A.Currency = 'rub'
                    )

Проверял на Oracle, но, ИМХО, это вполне классический SQL smile




--------------------
Хотите поговорить об этом?
PM   Вверх
Cashey
Дата 3.2.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


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

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



igon Вовремя успел smile Молодец! Помог очень сильно, к утру я, правда, уже сам до этого созрел, но времени ты мне съэкономил уйму. Я даже смог себе позволить утром немного в инете поболтпться smile


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

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

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




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


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

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