Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 [23] 24 25 26 27 .. 31   вперед  Ctrl
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
farbox
Member

Откуда: Россошь-Москва
Сообщений: 494
сенкс
3 июл 07, 13:51    [4343785]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
absan
Member

Откуда:
Сообщений: 1
<Guest>
Ничего не понимаю. До кораблей даже еще и не добрался.

Задание: 2 (1)
Найдите производителей принтеров. Вывести: maker

select maker = pd.maker
from printer pr
inner join product pd on pd.model = pr.model
group by pd.maker

или

select distinct pd.maker
from printer pr, product pd
where pd.model = pr.model

или

select distinct pd.maker
from printer pr
inner join product pd on pd.model = pr.model


Результат один и тот же:
Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Неверное число записей (меньше на 1)

Может быть от меня хотят какую-то проверку на Null значения?


а просто select distinct maker from product с типом принтер не пробовал?
29 авг 07, 13:31    [4591005]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Roman S. Golubin
Member

Откуда: 140002
Сообщений: 11541
Обсуждение схемы новой "деревянной" базы для sql-ex.ru
1 сен 07, 11:55    [4608852]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
PKovalenko
Member

Откуда:
Сообщений: 9
Помогите на 7 вопросе, чего-то завис:

Найдите номера моделей и цены всех продуктов (любого типа) выпущенных производителем B (латинская буква).

select distinct t1.model, t1.price from PC as t1
inner join Product as t2 on t1.model=t2.model
where t2.maker='B'
union
select distinct t3.model, t3.price from Laptop as t3
inner join Product as t4 on t3.model=t4.model
where t4.maker='B'
union all
select distinct t5.model, t5.price from Printer as t5
inner join Product as t6 on t6.model=t6.model
where t6.maker='B'

Получается больше чем у них, хотя все строчки разные, а если вывести производителя, то он 'B'

Спасибо!
15 фев 08, 12:17    [5294025]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
>Помогите на 7 вопросе, чего-то завис:

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

Posted via ActualForum NNTP Server 1.4

15 фев 08, 13:06    [5294475]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
PKovalenko
Member

Откуда:
Сообщений: 9
2 daw:
Там нет принтеров?
А почему?
15 фев 08, 13:24    [5294657]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
а хотя нет, в вашем случае решение правильное: опечаточка просто вкралась в запрос ;)

Posted via ActualForum NNTP Server 1.4

15 фев 08, 13:32    [5294731]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
PKovalenko
Member

Откуда:
Сообщений: 9
daw
а хотя нет, в вашем случае решение правильное: опечаточка просто вкралась в запрос ;)


Спасибо, нашел...
15 фев 08, 13:43    [5294827]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Fantom-16
Member

Откуда:
Сообщений: 1
Помогите с вопросом № 44.
Понятно что недостающий корабль Rodney в таблице Outcomes. Для решение задачи нужно вывести все корабли в одном столбце, собсна с этим у меня и проблемы((
12 май 08, 22:46    [5653167]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
alex0009
Guest
Помогите с заданием 72
Среди тех, кто пользуется услугами только одной компании, определить имена разных пассажиров, летавших чаще других. Вывести: имя пассажира и число полетов.
Уже два дня бьюсь над ним.


select name,ec from (select distinct ID_psg,ec,name from (
select a.ID_psg,count(id_psg) as ec,a.name,a.ID_comp from (
select pa.ID_psg,pa.name,s.trip_no,s.ID_comp
from (Passenger pa left join (select p.trip_no,p.ID_psg,a.ID_comp
from (Pass_in_trip p left join (select t.trip_no,c.ID_comp
from (Company c left join Trip t on c.ID_comp=t.id_comp)) a
on p.trip_no=a.trip_no)) s on pa.ID_psg=s.ID_psg)
where trip_no<>'') a GROUP BY a.name,a.ID_psg,a.ID_comp)t)ok,(
select max(ec) as lol from (
select distinct ID_psg,ec,name from (
select a.ID_psg,count(id_psg) as ec,a.name,a.ID_comp from (
select pa.ID_psg,pa.name,s.trip_no,s.ID_comp
from (Passenger pa left join (select p.trip_no,p.ID_psg,a.ID_comp
from (Pass_in_trip p left join (select t.trip_no,c.ID_comp
from (Company c left join Trip t on c.ID_comp=t.id_comp)) a
on p.trip_no=a.trip_no)) s on pa.ID_psg=s.ID_psg)
where trip_no<>'') a GROUP BY a.name,a.ID_psg,a.ID_comp)t)j)b
where b.lol=ok.ec
4 июн 08, 22:42    [5761560]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
depr
Guest
Никто не подскажет как правильно трактовать уловие задачи :
Определить номера пассажиров, возвращавшихся самолетом в тот же день в пункт вылета.
Пример полет из Города А в Б и Обратно в А
1. Вылет и прибытие в город А происходят в один день
или же так
2. Вылет обратно в город А должен быть в тот же день когда был вылет из А ???
15 июл 08, 08:14    [5933549]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
dake
Member

Откуда:
Сообщений: 140
по 11 упражению
кто знает как сделать его дайте хотя бы подсказку

по 12 упражению
как построить числовую последовательность для заранее неизвестного интервала
между самым минимальным и максимальными идентификаторами заранее благодарен
29 июл 08, 15:03    [5999164]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Кхе
Guest
dake
по 11 упражению
кто знает как сделать его дайте хотя бы подсказку

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

Смысл упражнений если все за вас сделают?)
29 июл 08, 15:14    [5999274]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
C#C++
Member [заблокирован]

Откуда: Суровые северные земли
Сообщений: 2636
dake
Если у Вас возникают проблемы уже на 11 упражнении, то это очень плохой знак. Соберитесь с мыслями, почитайте хэлп по MS 2005, там есть все ответы на любые вопросы.
29 июл 08, 15:18    [5999313]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Ягодная карусель
Member

Откуда: СПб
Сообщений: 9
на том же сайте есть неплохая справка, знаний в которой достаточно для решения всех упражнений.
29 июл 08, 18:18    [6001101]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Anddros
Member

Откуда:
Сообщений: 1077
Ягодная карусель
на том же сайте есть неплохая справка, знаний в которой достаточно для решения всех упражнений.


Смелое утверждение.
Все упражнения решили на данный момент только трое из более чем 16 тысяч пытавшихся сделать это.

Но справка там действительно неплохая...
30 июл 08, 11:25    [6003213]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
Anddros
Все упражнения решили на данный момент только трое из более чем 16 тысяч пытавшихся сделать это.

Просто многим иногда надо работать на работе и тратить весь рабочий день на решение нет возможности-), а справки там хватить на первую сотню задач точно, да и к разработчикам можно обратиться в крайнем случаи.
30 июл 08, 11:33    [6003279]     Ответить | Цитировать Сообщить модератору
 Упражнеие 15 (1)  [new]
WhiteTushkanchik
Member

Откуда:
Сообщений: 6
Упражнеие 15 (1)

Про то, какие модели у костиного ПК. Деаю его через cross join все 3 таблицы для каждого Человека в условии, а потом пускаю WHERE. Ответ правильный, но на тестовой базе не срабатывает. Пишет записей на 2 меньше. Может я в способе решения ошиблась?
30 июл 08, 12:20    [6003727]     Ответить | Цитировать Сообщить модератору
 Re: Упражнеие 15 (1)  [new]
ReeW
Member

Откуда: Санкт-Петербург
Сообщений: 59
WhiteTushkanchik
Упражнеие 15 (1)

Про то, какие модели у костиного ПК. Деаю его через cross join все 3 таблицы для каждого Человека в условии, а потом пускаю WHERE. Ответ правильный, но на тестовой базе не срабатывает. Пишет записей на 2 меньше. Может я в способе решения ошиблась?


аналогично, застрял тут же. Вроде всё учел, но на проверочной базе мой запрос возвращает одну лишнюю запись....но мне кажется, что дело всё-таки во внимании к условиям
31 июл 08, 13:26    [6010097]     Ответить | Цитировать Сообщить модератору
 Re: Упражнеие 15 (1)  [new]
WhiteTushkanchik
Member

Откуда:
Сообщений: 6
ReeW
WhiteTushkanchik
Упражнеие 15 (1)

Про то, какие модели у костиного ПК. Деаю его через cross join все 3 таблицы для каждого Человека в условии, а потом пускаю WHERE. Ответ правильный, но на тестовой базе не срабатывает. Пишет записей на 2 меньше. Может я в способе решения ошиблась?


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




select DISTINCT KTbl.KPCModel
from

(select KPC.code as KPCI,
KPC.Speed as KPCSpeed,
KPC.Hd as KPCHd,
KPC.Ram as KPCRam,
KPC.Price as KPCPrice,
KPC.Model as KPCModel
from PC as KPC
) as KTbl

CROSS JOIN (
select OLT.code as OLTI,
OLT.Ram as OLTRam,
OLT.Screen as OLTScreen,
OLT.Model as OLTModel
from Laptop as OLT
) as OTbl

CROSS JOIN (
select VPrint.code as VPrintI,
VPrint.Type as VPrintType,
VPrint.Color as VPrintColor,
VPrint.Model as VPrintModel,
VPrint.Price as VPrintPrice
from Printer as VPrint
) as VTbl

CROSS JOIN (
select TPrint.code as TPrintI,
TPrint.Type as TPrintType,
TPrint.Color as TPrintColor,
TPrint.Price as TPrintPrice
from Printer as TPrint
) as TTbl

CROSS JOIN (
select MPC.maker as MProdMaker,MPC.code as MPCI, MPrint.code as MPrintI,MLT.code as MLTI,
MPC.Speed as MPCSpeed,
MPC.Price as MPCPrice,
MPrint.maker as MProdMaker2,MLT.maker as MProdMaker3
from (select Product.maker, PC.code,PC.Speed,PC.Price from PC
inner join Product
on Product.model = PC.model and Product.maker is not NULL) as MPC
cross join
(select Product.maker, Printer.code from Printer
inner join Product
on Product.model = Printer.model and Product.maker is not NULL ) as MPrint
cross join
(select Product.maker, Laptop.code from Laptop
inner join Product
on Product.model = Laptop.model and Product.maker is not NULL ) as MLT
) as MTbl

CROSS JOIN (
select DPC.maker as DProdMaker,DPC.code as DPCI, DPrint.code as DPrintI,DLT.code as DLTI,
DLT.Hd as DLTHd,
DLT.Screen as DLTScreen,
DPrint.maker as DProdMaker2,DLT.maker as DProdMaker3
from (select Product.maker, PC.code from PC
inner join Product
on Product.model = PC.model
and Product.maker is not NULL) as DPC
cross join
(select Product.maker, Printer.code from Printer
inner join Product
on Product.model = Printer.model and Product.maker is not NULL)
as DPrint
cross join
(select Product.maker, Laptop.code,Laptop.Hd,Laptop.Screen from Laptop
inner join Product
on Product.model = Laptop.model and Product.maker is not NULL ) as DLT
) as DTbl

where
(
DTbl.DProdMaker in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)
and
DTbl.DProdMaker2 in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)
and
DTbl.DProdMaker3 in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)

and
not DTbl.DProdMaker = ' '
and
not DTbl.DProdMaker2 = ' '
and
not DTbl.DProdMaker3 = ' '


and
DTbl.DProdMaker is not NULL
and
DTbl.DProdMaker2 is not NULL
and
DTbl.DProdMaker3 is not NULL

)

and
(not VTbl.VPrintType = TTbl.TPrintType)
and
VTbl.VPrintColor = TTbl.TPrintColor
and
OTbl.OLTScreen + 3= DTbl.DLTScreen
and
isNull(TTbl.TPrintPrice,0) *4 = isNull(MTbl.MPCPrice,0)
and
(not Right(LEFT(OTbl.OLTModel,3),1)= Right(LEFT(VTbl.VPrintModel,3),1))
and
(MTbl.MPCSpeed = KTbl.KPCSpeed
and
DTbl.DLTHd = KTbl.KPCHd
and
OTbl.OLTRam = KTbl.KPCRam
and
isNull(VTbl.VPrintPrice,0) = isNull(KTbl.KPCPrice,0) )

and
VTbl.VPrintPrice is not NULL
and
KTbl.KPCPrice is not NULL
and
TTbl.TPrintPrice is not NULL
and
MTbl.MPCPrice is not NULL

and
not KTbl.KPCI = DTbl.DPCI
and
not KTbl.KPCI = MTbl.MPCI
and
not DTbl.DPCI = MTbl.MPCI

and
not OTbl.OLTI = DTbl.DLTI
and
not OTbl.OLTI = MTbl.MLTI
and
not dTbl.dLTI = MTbl.MLTI

and
not vTbl.VPrintI = DTbl.DPrintI
and
not VTbl.VPrintI = MTbl.MPrintI
and
not vTbl.VPrintI = tTbl.tPrintI

and
not dTbl.dPrintI = MTbl.MPrintI
and
not dTbl.dPrintI = tTbl.tPrintI

and
not mTbl.mPrintI = tTbl.tPrintI
3 авг 08, 18:28    [6020854]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
WhiteTushkanchik
Member

Откуда:
Сообщений: 6
я выполнила его так (пишет на 2 записи больше)

select DISTINCT KTbl.KPCModel
from

(select KPC.code as KPCI,
KPC.Speed as KPCSpeed,
KPC.Hd as KPCHd,
KPC.Ram as KPCRam,
KPC.Price as KPCPrice,
KPC.Model as KPCModel
from PC as KPC
) as KTbl

CROSS JOIN (
select OLT.code as OLTI,
OLT.Ram as OLTRam,
OLT.Screen as OLTScreen,
OLT.Model as OLTModel
from Laptop as OLT
) as OTbl

CROSS JOIN (
select VPrint.code as VPrintI,
VPrint.Type as VPrintType,
VPrint.Color as VPrintColor,
VPrint.Model as VPrintModel,
VPrint.Price as VPrintPrice
from Printer as VPrint
) as VTbl

CROSS JOIN (
select TPrint.code as TPrintI,
TPrint.Type as TPrintType,
TPrint.Color as TPrintColor,
TPrint.Price as TPrintPrice
from Printer as TPrint
) as TTbl

CROSS JOIN (
select MPC.maker as MProdMaker,MPC.code as MPCI, MPrint.code as MPrintI,MLT.code as MLTI,
MPC.Speed as MPCSpeed,
MPC.Price as MPCPrice,
MPrint.maker as MProdMaker2,MLT.maker as MProdMaker3
from (select Product.maker, PC.code,PC.Speed,PC.Price from PC
inner join Product
on Product.model = PC.model and Product.maker is not NULL) as MPC
cross join
(select Product.maker, Printer.code from Printer
inner join Product
on Product.model = Printer.model and Product.maker is not NULL ) as MPrint
cross join
(select Product.maker, Laptop.code from Laptop
inner join Product
on Product.model = Laptop.model and Product.maker is not NULL ) as MLT
) as MTbl

CROSS JOIN (
select DPC.maker as DProdMaker,DPC.code as DPCI, DPrint.code as DPrintI,DLT.code as DLTI,
DLT.Hd as DLTHd,
DLT.Screen as DLTScreen,
DPrint.maker as DProdMaker2,DLT.maker as DProdMaker3
from (select Product.maker, PC.code from PC
inner join Product
on Product.model = PC.model
and Product.maker is not NULL) as DPC
cross join
(select Product.maker, Printer.code from Printer
inner join Product
on Product.model = Printer.model and Product.maker is not NULL)
as DPrint
cross join
(select Product.maker, Laptop.code,Laptop.Hd,Laptop.Screen from Laptop
inner join Product
on Product.model = Laptop.model and Product.maker is not NULL ) as DLT
) as DTbl

where
(
DTbl.DProdMaker in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)
and
DTbl.DProdMaker2 in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)
and
DTbl.DProdMaker3 in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)

and
not DTbl.DProdMaker = ' '
and
not DTbl.DProdMaker2 = ' '
and
not DTbl.DProdMaker3 = ' '


and
DTbl.DProdMaker is not NULL
and
DTbl.DProdMaker2 is not NULL
and
DTbl.DProdMaker3 is not NULL

)

and
(not VTbl.VPrintType = TTbl.TPrintType)
and
VTbl.VPrintColor = TTbl.TPrintColor
and
OTbl.OLTScreen + 3= DTbl.DLTScreen
and
isNull(TTbl.TPrintPrice,0) *4 = isNull(MTbl.MPCPrice,0)
and
(not Right(LEFT(OTbl.OLTModel,3),1)= Right(LEFT(VTbl.VPrintModel,3),1))
and
(MTbl.MPCSpeed = KTbl.KPCSpeed
and
DTbl.DLTHd = KTbl.KPCHd
and
OTbl.OLTRam = KTbl.KPCRam
and
isNull(VTbl.VPrintPrice,0) = isNull(KTbl.KPCPrice,0) )

and
VTbl.VPrintPrice is not NULL
and
KTbl.KPCPrice is not NULL
and
TTbl.TPrintPrice is not NULL
and
MTbl.MPCPrice is not NULL

and
not KTbl.KPCI = DTbl.DPCI
and
not KTbl.KPCI = MTbl.MPCI
and
not DTbl.DPCI = MTbl.MPCI

and
not OTbl.OLTI = DTbl.DLTI
and
not OTbl.OLTI = MTbl.MLTI
and
not dTbl.dLTI = MTbl.MLTI

and
not vTbl.VPrintI = DTbl.DPrintI
and
not VTbl.VPrintI = MTbl.MPrintI
and
not vTbl.VPrintI = tTbl.tPrintI

and
not dTbl.dPrintI = MTbl.MPrintI
and
not dTbl.dPrintI = tTbl.tPrintI

and
not mTbl.mPrintI = tTbl.tPrintI
3 авг 08, 18:29    [6020856]     Ответить | Цитировать Сообщить модератору
 Re: Упражнеие 15 (1)  [new]
C#C++ (забанен)
Guest
WhiteTushkanchik
Упражнеие 15 (1)
Эх, мне бы ваши проблемы... (застрял на 89)
4 авг 08, 01:48    [6021338]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
WhiteTushkanchik
Member

Откуда:
Сообщений: 6
Ну дайте хоть какие - то комментарии. Уже дошла до того, что только одна запись лишняя.

select DISTINCT KTbl.KPCModel
from

(select KPC.code as KPCI,
KPC.Speed as KPCSpeed,
KPC.Hd as KPCHd,
KPC.Ram as KPCRam,
KPC.Price as KPCPrice,
KPC.Model as KPCModel
from PC as KPC
) as KTbl

CROSS JOIN (
select OLT.code as OLTI,
OLT.Ram as OLTRam,
OLT.Screen as OLTScreen,
OLT.Model as OLTModel,
case
when len(OLT.Model) > 3 THEN RIGHT(OLT.Model,(len(OLT.Model)-3))
else RIGHT(OLT.Model,0) end as OLTModelRight
from Laptop as OLT
WHEre len(OLT.Model)> 2
) as OTbl

CROSS JOIN (
select VPrint.code as VPrintI,
VPrint.Type as VPrintType,
VPrint.Color as VPrintColor,
VPrint.Model as VPrintModel,
VPrint.Price as VPrintPrice,
case
when len(VPrint.Model)>3 Then RIGHT(VPrint.Model,(len(VPrint.Model)-3))
else RIGHT(VPrint.Model,0) end as VPrintModelRight
from Printer as VPrint
where len(VPrint.Model)> 2
) as VTbl

CROSS JOIN (
select TPrint.code as TPrintI,
TPrint.Type as TPrintType,
TPrint.Color as TPrintColor,
TPrint.Price as TPrintPrice
from Printer as TPrint
) as TTbl

CROSS JOIN (
select MPC.maker as MProdMaker,MPC.code as MPCI, MPrint.code as MPrintI,MLT.code as MLTI,
MPC.Speed as MPCSpeed,
MPC.Price as MPCPrice,
MPrint.maker as MProdMaker2,MLT.maker as MProdMaker3
from (select Product.maker, PC.code,PC.Speed,PC.Price from PC
inner join Product
on Product.model = PC.model and Product.maker is not NULL) as MPC
cross join
(select Product.maker, Printer.code from Printer
inner join Product
on Product.model = Printer.model and Product.maker is not NULL ) as MPrint
cross join
(select Product.maker, Laptop.code from Laptop
inner join Product
on Product.model = Laptop.model and Product.maker is not NULL ) as MLT
) as MTbl

CROSS JOIN (
select DPC.maker as DProdMaker,DPC.code as DPCI, DPrint.code as DPrintI,DLT.code as DLTI,
DLT.Hd as DLTHd,
DLT.Screen as DLTScreen,
DPrint.maker as DProdMaker2,DLT.maker as DProdMaker3
from (select Product.maker, PC.code from PC
inner join Product
on Product.model = PC.model
and Product.maker is not NULL) as DPC
cross join
(select Product.maker, Printer.code from Printer
inner join Product
on Product.model = Printer.model and Product.maker is not NULL)
as DPrint
cross join
(select Product.maker, Laptop.code,Laptop.Hd,Laptop.Screen from Laptop
inner join Product
on Product.model = Laptop.model and Product.maker is not NULL ) as DLT
) as DTbl

where
(
DTbl.DProdMaker in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)
and
DTbl.DProdMaker2 in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)
and
DTbl.DProdMaker3 in (MTbl.MProdMaker,MTbl.MProdMaker2,MTbl.MProdMaker3)

and
mTbl.mProdMaker in (dTbl.dProdMaker,dTbl.dProdMaker2,dTbl.dProdMaker3)
and
mTbl.mProdMaker2 in (dTbl.dProdMaker,dTbl.dProdMaker2,dTbl.dProdMaker3)
and
mTbl.mProdMaker3 in (dTbl.dProdMaker,dTbl.dProdMaker2,dTbl.dProdMaker3)


and
not DTbl.DProdMaker = ' '
and
not DTbl.DProdMaker2 = ' '
and
not DTbl.DProdMaker3 = ' '

and
not mTbl.mProdMaker = ' '
and
not mTbl.mProdMaker2 = ' '
and
not mTbl.mProdMaker3 = ' '

and
DTbl.DProdMaker is not NULL
and
DTbl.DProdMaker2 is not NULL
and
DTbl.DProdMaker3 is not NULL

and
mTbl.mProdMaker is not NULL
and
mTbl.mProdMaker2 is not NULL
and
mTbl.mProdMaker3 is not NULL

)

and
(not VTbl.VPrintType = TTbl.TPrintType)
and
VTbl.VPrintColor = TTbl.TPrintColor

and
OTbl.OLTScreen + 3= DTbl.DLTScreen
and
isNull(TTbl.TPrintPrice,0) *4 = isNull(MTbl.MPCPrice,0)
and

LEFT(OTbl.OLTModel,2)= LEFT(VTbl.VPrintModel,2)
and
OTbl.OLTModelRight = VTbl.VPrintModelRight
and
not Right(LEFT(OTbl.OLTModel,3),1)= Right(LEFT(VTbl.VPrintModel,3),1)

and
(MTbl.MPCSpeed = KTbl.KPCSpeed
and
DTbl.DLTHd = KTbl.KPCHd
and
OTbl.OLTRam = KTbl.KPCRam
and
isNull(VTbl.VPrintPrice,0) = isNull(KTbl.KPCPrice,0) )

and
VTbl.VPrintPrice is not NULL
and
KTbl.KPCPrice is not NULL
and
TTbl.TPrintPrice is not NULL
and
MTbl.MPCPrice is not NULL

and
not KTbl.KPCI = DTbl.DPCI
and
not KTbl.KPCI = MTbl.MPCI
and
not DTbl.DPCI = MTbl.MPCI

and
not OTbl.OLTI = DTbl.DLTI
and
not OTbl.OLTI = MTbl.MLTI
and
not dTbl.dLTI = MTbl.MLTI

and
not vTbl.VPrintI = DTbl.DPrintI
and
not VTbl.VPrintI = MTbl.MPrintI
and
not vTbl.VPrintI = tTbl.tPrintI

and
not dTbl.dPrintI = MTbl.MPrintI
and
not dTbl.dPrintI = tTbl.tPrintI

and
not mTbl.mPrintI = tTbl.tPrintI
18 авг 08, 17:32    [6079909]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Anddros
Member

Откуда:
Сообщений: 1077
WhiteTushkanchik
Ну дайте хоть какие - то комментарии.


Тихий ужас...

Столько кода нагородить для решения простой задачки. В среднем ее решения раз в 10 короче вашего. :)

А вот это что за фигня?
select MPC.maker as MProdMaker,MPC.code as MPCI, MPrint.code as MPrintI,MLT.code as MLTI,
MPC.Speed as MPCSpeed,
MPC.Price as MPCPrice,
MPrint.maker as MProdMaker2,MLT.maker as MProdMaker3
from (select Product.maker, PC.code,PC.Speed,PC.Price from PC 
inner join Product 
on Product.model = PC.model and Product.maker is not NULL) as MPC
cross join
(select Product.maker, Printer.code from Printer 
inner join Product 
on Product.model = Printer.model and Product.maker is not NULL ) as MPrint
cross join
(select Product.maker, Laptop.code from Laptop 
inner join Product 
on Product.model = Laptop.model and Product.maker is not NULL ) as MLT 
Вы бы попробовали запустить сей кусок отдельно. Результат вас, думаю, неприятно удивит.

Ну и позволю дать вам несколько советов.
В правом нижнем углу каждой странички sql-exe.ru есть кнопочка Разработчики (Отправить сообщение). Будут реальные затруднения с решением задач - пишите им. В помощи они никому не отказывают.
И ни в коем случае не публикуйте условия задач или их решения ни на этом сайте ни где-нить еще. За сие можно лишиться аккаунта на sql-exe. С этим все очень строго...
18 авг 08, 18:53    [6080428]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
WhiteTushkanchik
Member

Откуда:
Сообщений: 6
понятно и за оветы спасибо.

А все же про 15 задачу. У нее идея решения - cross join или она основана на where?
Нагромождение потому, что все cross делаю.
25 авг 08, 13:15    [6104956]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 18 19 20 21 22 [23] 24 25 26 27 .. 31   вперед  Ctrl
Все форумы / Microsoft SQL Server Ответить