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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несложный запрос уходит в штопор... проблемы со вложенным запросом.... 
V
    Опции темы
Juju
Дата 18.7.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Заблудился в 3-х соснах...  smile 
Вроде задача проще не бывает, а выхода так и не найду...

Есть 2 таблицы (все вымышлено, для простоты восприятия) например

Т.е. есть две таблички... Одна - фирмы (FIRM), вторая - учредители (UCHREDITEL)
Таблица 1: FIRM
поля и значения
ID     KOD             NAZVANIE               DIREKTOR
1      100265        ЕВРОСПОРТ            ИВАНОВ А.А. 
2      230173        КИПР-ТУР                СИДОРОВ Б.Б. 
3      156567        МОЛОКОЗАВОД       ПЕТРОВ П.П. 
4      345678        КАВКАЗ МЕТАЛЛ      КАРПОВА В.А. 

Таблица 1: UCHREDITEL
поля и значения
ID     KOD_FIRM   UCHR 
1      100265        ИВАНОВ А.А. 
2      100265        ДРОНОВ К.В. 
3      100265        КИТОВА А.А. 
4      230173        СОМОВ В.А.
5      230173        БАРЫШКИН В.Г.
6      230173        ИВАНОВ В.А.
7      230173        ЧУКАРИН В.Д.
8      156567        КОНДРАТЬЕВ В.В. 
9      156567        ИВАНОВ А.А.
10    156567        КАРПОВА В.А.

Задача:
Отобрать данные в табличке FIRM где директором или учредителем является "такой-то человек" (например Иванов)

Мой запрос выглядит так:
Код

SELECT KOD, NAZVANIE FROM FIRM
WHERE DIREKTOR LIKE "ИВАНОВ%"
OR
KOD IN (SELECT KOD FROM UCHREDITEL WHERE UCHR LIKE "ИВАНОВ%")

(конечно и с псевдонимами тоже пробовал полей тоже типа SELECT F.KOD, F.NAZVANIE FROM FIRM F)
ЭТОТ ЗАПРОС УВОДИТ ПРОЦЕССОР В ПОЛНУЮ ЗАГРУЗКУ И ЗАВИСКУ



Это сообщение отредактировал(а) Juju - 18.7.2008, 14:44
PM MAIL   Вверх
uranpro
Дата 18.7.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



Код

select distinct * from 
firm inner join
uchereditel on kod=kod_firm
where director like "%"+director+"%"

мб так ?

Это сообщение отредактировал(а) uranpro - 18.7.2008, 15:47


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Juju
Дата 18.7.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



uranpro, спасибо за ответ...  smile  не работает!
PM MAIL   Вверх
uranpro
Дата 18.7.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



Juju, не работает ? выдает ошибку ?

Добавлено @ 16:52
Код

select distinct * from 
firm inner join
uchereditel on kod=kod_firm
where director like "%"+uchr+"%"

или так

Код

select distinct * from 
firm inner join
uchereditel on kod=kod_firm
where director like left(uchr,len(uchr)-1)


Это сообщение отредактировал(а) uranpro - 18.7.2008, 16:53


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
Juju
Дата 18.7.2008, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



1) не выбирает ничего
2) выбирает на каждого учредителя по фирме... т.е. если у фирмы КАВКАЗ МЕТАЛЛ пять учредителей - ровно столько она и будет присутствовать в списке..., но исключительно если входжной параметр например "ИВАНОВ%" - будет там директором
3) выдает ошибку в синтаксисе (не указывает какую...)...

и если можно с применением входного параметра... например части фамилии... 
PM MAIL   Вверх
uranpro
Дата 18.7.2008, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 571
Регистрация: 7.5.2008
Где: Moscow city

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



Juju, ))))))))))))) это фирусс))) я хз тогда


--------------------
I want a perfect soul
PM MAIL ICQ   Вверх
comtat
Дата 18.7.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

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



Код

SELECT * FROM (
SELECT kod, nazvanie, director FROM firm WHERE director LIKE 'КОНДРАТЬЕВ%'
UNION
SELECT kod, nazvanie, director FROM firm f
inner join UCHREDITEL u ON u.kod_firm = f.kod
WHERE uchr LIKE 'КОНДРАТЬЕВ%'
) dd


Код

SELECT kod, nazvanie, director 
FROM firm f
inner join UCHREDITEL u ON u.uchr LIKE 'ИВАНОВ%' and u.kod_firm = f.kod



--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Juju
Дата 20.7.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



comtat, большущее спасибо!
Код №1 работает (второй, к сожалению, нет)

Вопрос... чем некоректен вот этот вариант (он тоже работает):
Код

  SELECT * FROM (
   SELECT KOD,NAZVANIE,DIREKTOR FROM FIRM
   WHERE DIREKTOR LIKE "ИВАНОВ%"
   UNION
   SELECT F.KOD, F.NAZVANIE, F.DIREKTOR FROM FIRM F
    WHERE F.KOD IN(SELECT U.KOD_FIRM FROM UCHREDITEL U WHERE U.UCHR LIKE "ИВАНОВ%")
  )E

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




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


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

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