Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите пожалуйста построить SQL-запрос  [new]
Джек
Member

Откуда:
Сообщений: 574
Добрый день всем!
Я плохо знаю SQL, помогите пожалуйста построить SQL-запрос.
Существует две таблицы: FIRM - организации, CITY - города.
В таблице FIRM есть поля FIRM.JUR_CITY_ID (не может быть пустым) для города юридического адреса
и FIRM.POST_CITY_ID (может быть пустым) для города почтового адреса.
В таблице CITY есть поле CITY_ID (ИД записи). Все заполненные FIRM.JUR_CITY_ID,
FIRM.POST_CITY_ID существуют в таблице FIRM.
в таблицах есть поля FIRM.NAME - название организации и CITY.NAME - название города.
помогите пожалуйста построить SQL-запрос, который обеспечивал бы фильтрующий поиск информации по названию организации и по названиям городов почтового и юридического адреса.
(поля могут заполняться в разных регистрах)
Заранее большое спасибо!!!
13 авг 05, 18:52    [1784311]     Ответить | Цитировать Сообщить модератору
 Re: помогите пожалуйста построить SQL-запрос  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541

create table [CITY] ([ID] int primary key identity, [NAME] nvarchar(100))
create table [FIRM] ([ID] int primary key identity, [NAME] nvarchar(100), [JUR_CITY.ID] int not null 
constraint [jur_city] foreign key references [CITY] ([ID]), [POST_CITY.ID] int null constraint 
[post_city] foreign key references [CITY] ([ID]))

insert [CITY] ([NAME])
select N'Астрахань' union all
select N'Бобруйск' union all
select N'Таганрог' union all
select N'Пертоминск' union all
select N'Магадан'

insert [FIRM] ([NAME], [JUR_CITY.ID], [POST_CITY.ID])
select N'Рога и копыта', 3, 5 union all
select N'Афтар жжот и падонки', 2, 2 union all
select N'Новый русский и ко.', 5, null union all
select N'Блатной брус из Магадана', 5, 1 union all
select N'Сломанный телефон интерпрайзис', 4, null

declare @что_ищем nvarchar(100)
set @что_ищем = N'аД'

select [FIRM].[NAME], [JUR_CITY].[NAME], [POST_CITY].[NAME]
from [FIRM]
inner join [CITY] [JUR_CITY] on [FIRM].[JUR_CITY.ID] = [JUR_CITY].[ID]
left join [CITY] [POST_CITY] on [FIRM].[POST_CITY.ID] = [POST_CITY].[ID]
where UPPER(FIRM.[NAME]) like UPPER('%'+@что_ищем+'%')
or UPPER([JUR_CITY].[NAME]) like UPPER('%'+@что_ищем+'%')
or ([POST_CITY].[ID] is not null and UPPER([POST_CITY].[NAME]) like UPPER('%'+@что_ищем+'%'))

drop table [FIRM]
drop table [CITY]


Posted via ActualForum NNTP Server 1.2

13 авг 05, 20:01    [1784388]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить