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

Откуда: Минск
Сообщений: 68
Здравствуйсте, у меня проблема с таким заданием:
1.) Из таблицы Клиент выбрать все строки, для которых значение поля ИмяКлиента начинается с префиксом ИП и значение поля КодРегиона лажит в диапозоне от 200 до 299 или неизвестно.

Я представляю только как задать диапозон:
select*
from Клиент
where КодРегиона between 200 and 299

2.) В таблице Заказ найти все те строки, для которых значение поля Кол-во больше 10. Одноко на экран всместо полей КодКлиента, КодТовара, КодПоставщика выведите поля ИмяКлиента, Наименование,ИмяПоставщикасоотв соответственно, которые заменяют малоинформативные коды содержательными наименованиями.
Я представляю только как задать ограничение:
select*
from Заказ
where Количество>10
25 май 11, 19:12    [10709164]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
1. BOL->LIKE
2. BOL-> Join Fundamentals
25 май 11, 21:13    [10709540]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
автор
Из таблицы Клиент выбрать все строки, для которых значение поля ИмяКлиента начинается с префиксом ИП и значение поля КодРегиона лажит в диапозоне от 200 до 299 или неизвестно

select * from client where left(upper(ltrim(ClientName)),2)='ИП' and (RegionCode between 200 and 299 or RegionCode is null)

2. напишите скрипты создания таблиц, а вообще JOIN рулит
25 май 11, 22:33    [10709767]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
Evgeniy_Aleksandrovich
Member

Откуда: Минск
Сообщений: 68
2)
скрипты по 2-ой части:
create table Заказ
(
КодЗаказа int identity(1, 1) not null,
КодКлиента int not null,
КодТовара int not null,
Количество numeric(12, 3)  null check( Количество > 0),
ДатаЗаказа datetime default getdate() null,
СрокПоставки datetime default getdate() +14 null,
КодПоставщика int null,
primary key (КодЗаказа, КодКлиента, КодТовара),
constraint FK_Заказ_Товар foreign key (КодТовара) references Товар on update cascade on delete cascade,
constraint FK_Заказ_Клиент foreign key (КодКлиента) references Клиент on update cascade on delete cascade,
constraint FK_Заказ_Поставщик foreign key (КодПоставщика) references Поставщик
)

/* товар */
create table Товар
(
КодТовара int primary key,
Наименование varchar(50) not null,
Единица_изм char(10) default 'штука' null,
Цена money null check (Цена > 0),
КодВалюты char(3) default 'BYR' null,
Расфасован Logical not null,
constraint FK_Товар_Валюта foreign key (КодВалюты) references Валюта on update cascade
)

/* клиент */
create table Клиент
(
КодКлиента int identity(1,1) primary key,
ИмяКлиента varchar(40)  not null,
ФИОРуковолителя varchar(60) null,
КодРегиона int null,
constraint FK_Клиент_Регион foreign key (КодРегиона) references Регион on update cascade
)
26 май 11, 01:44    [10710424]     Ответить | Цитировать Сообщить модератору
 Re: Выборка данных  [new]
iljy
Member

Откуда:
Сообщений: 8711
londinium
where left(upper(ltrim(ClientName)),2)='ИП'

Это называется "Скажи индексам нет"
26 май 11, 08:40    [10710741]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить