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

Откуда: СПб
Сообщений: 206
Мож я че ни так делаю??? Есто, сильно по голове не бейте, но я тут решил посматреть что там за тесты такие, и ни как не могу на сайт на энтот зайти... Адрем именно http://sql.ipps.ru/ ???
Уже неделю пытаюсь, результат один: "Невозможно найти удаленный сервер".. =(

--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли
25 авг 08, 14:17    [6105365]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Рустик_Уфа
Member

Откуда:
Сообщений: 89
hdd-killer
Мож я че ни так делаю??? Есто, сильно по голове не бейте, но я тут решил посматреть что там за тесты такие, и ни как не могу на сайт на энтот зайти... Адрем именно http://sql.ipps.ru/ ???
Уже неделю пытаюсь, результат один: "Невозможно найти удаленный сервер".. =(

--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли


согласен не работает он, не мучайте этот адрес и свой интернет. Я тоже пытался.. :)
25 авг 08, 14:28    [6105454]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Hallween
Member

Откуда: Москва
Сообщений: 170
автор
Адрем именно http://sql.ipps.ru/ ???
Уже неделю пытаюсь, результат один: "Невозможно найти удаленный сервер".. =(

www.sql-ex.ru
25 авг 08, 14:32    [6105487]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
hdd-killer
Member

Откуда: СПб
Сообщений: 206
Чет на 12-м завис ваще...вот то, что я навоял:
select min(Q_ID) q_min, MAX(Q_ID) q_max from(
select a.Q_id+1 as Q_ID
from utQ a left join utQ b on a.Q_id+1=b.q_id
where b.Q_ID is null and a.Q_id+1<=(select max(q_id) from utQ)
) t1
Говорит, типа "Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе. * Несовпадение данных (1)" Это что значит??? Пробывал но разных наборах, где разрывов дофига, где их нет, где вобще нет ни одной записи. Везде возвращает корректный результат соответствующий условиям задачи. Чет не доганяю, что за выборка в проверочной базе... :(

--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли
25 авг 08, 15:55    [6106185]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
hdd-killer
Member

Откуда: СПб
Сообщений: 206
Блин, разобрался...глючу)
--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли
25 авг 08, 16:01    [6106233]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
ahtolllka
Member

Откуда:
Сообщений: 95
Hallween
автор
Адрем именно http://sql.ipps.ru/ ???
Уже неделю пытаюсь, результат один: "Невозможно найти удаленный сервер".. =(

www.sql-ex.ru

Теперь и он загнулся видать. Часов с пяти вчерашнего дня не алё.
27 авг 08, 10:28    [6113357]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
dake
Member

Откуда:
Сообщений: 140
по 44 задаче
требуются разъяснения по вот этому, говорит - больше на 2 хотя по логике всё по правильно

select period_temp period, sum(B_VOL) vol from
(select Convert(varchar(10), datepart(year, B_DATETIME))+'-'+right('00'+Convert(varchar(10), datepart(month, B_DATETIME)),2)+'-'+right('00'+Convert(varchar(10), datepart(day, B_DATETIME)),2)
as period_temp, B_VOL
from utB) as t1
group by period_temp
having count(*)>10
union
select period_temp period, sum(B_VOL) vol from
(select Convert(varchar(10), datepart(year, B_DATETIME))+'-'+right('000'+Convert(varchar(10), datepart(month, B_DATETIME)),2)
as period_temp, B_VOL
from utB) as t1
group by period_temp
having count(*)>10
union
select period_temp period, sum(B_VOL) vol from
(select Convert(varchar(10), datepart(year, B_DATETIME))
as period_temp, B_VOL
from utB) as t1
group by period_temp
having count(*)>10
27 авг 08, 14:39    [6115080]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
C#C++
Member [заблокирован]

Откуда: Суровые северные земли
Сообщений: 2636
ahtolllka
Теперь и он загнулся видать. Часов с пяти вчерашнего дня не алё.
Щас пробовал - работает
27 авг 08, 14:45    [6115132]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
hdd-killer
Member

Откуда: СПб
Сообщений: 206
C 13 ни у кого проблем не было... уже второй день ее мучую... пропустил, добрался до 43-й а эту ни как не получается. Где в ней камень подводный???
Найдите среднюю скорость ПК, выпущенных производителем A.

пишу:
select avg(speed*1.0) from pc where model in (select model from product where maker='A')
т.е. берем все пк, проверяем, производителя и считаем среднюю скорость... проще некуда...
Система говорит: Ваш запрос вернул правильные данные на основной базе, но не прошел тест на проверочной базе.
* Несовпадение данных (1)
В шоке просто... :( что не правельно то???

--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли
28 авг 08, 16:06    [6121001]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
> speed*1.0

перестарался

Posted via ActualForum NNTP Server 1.4

28 авг 08, 16:12    [6121043]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
hdd-killer
Member

Откуда: СПб
Сообщений: 206
> speed*1.0

перестарался

В смысле??? Speed - целочисленное, результат соответственно тож будет целочисленный, если явно к дробному не привести. Да и явно не в этом делою.... Почему запрос может неправельно работать на целочисленной базе?
--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли
28 авг 08, 16:15    [6121062]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
hdd-killer
Member

Откуда: СПб
Сообщений: 206
*на тестовой базе...

--------------------
"Сogitationus poenam nemo patitur"
Никто не несет наказания за мысли
28 авг 08, 16:16    [6121065]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
>В смысле??? Speed - целочисленное, результат соответственно тож будет целочисленный, если явно к дробному не привести.
> Да и явно не в этом делою.... Почему запрос может неправельно работать на целочисленной базе?

а попробовать? у меня без умножения получилось "Правильно." и результат с 6 знаками после запятой.
ну, врут, значит, что smallint, - написать им надо.

Posted via ActualForum NNTP Server 1.4

28 авг 08, 16:22    [6121124]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
hdd-killer
Member

Откуда: СПб
Сообщений: 206
Вот бред... кто-нибудь мне может объяснить, в чем прикол???
daw

а попробовать? у меня без умножения получилось "Правильно." и результат с 6 знаками после запятой.

попробывал, получилось
daw
ну, врут, значит, что smallint, - написать им надо.

Даже если и врут, то что это меняет то??? Непонимаю... :(
28 авг 08, 17:05    [6121480]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
>Даже если и врут, то что это меняет то??? Непонимаю... :(

если это не int, а decimal (numeric), то умножение на 1.0 изменяет точность результата.
результат avg для decimal имеет тип: decimal(38, s) divided by decimal(10, 0)
где s - количество знаков после запятой у столбца, по которому считаем avg.

допустим, тип столбца - decimal(18, 6), тогда тип avg будет:
precision = p1 - s1 + s2 + max(6, s1 + p2 + 1) = 38 - 6 + 0 + max(6, 6+10+1) = 32 + 17 = 49
scale = max(6, s1 + p2 + 1) = max(6, 6 + 10 + 1) = 17

* The result precision and scale have an absolute maximum of 38. When a result precision is greater than 38, the corresponding
scale is reduced to prevent the integral part of a result from being truncated

то есть scale в реальности будет уменьшено на 49-38 = 11. т.е. равно 17-11=6

если же умножить столбец на 1.0, то avg уже будем считать от выражения с немного другими precision и scale:
константа 1.0 имеет тип decimal(2, 1). тогда:
precision = p1 + p2 + 1 = 18 + 2 + 1 = 21
scale = s1 + s2 = 6 + 1 = 7
для avg тогда получим:
precision = 38 - 7 + 0 + max(6, 7 + 10 + 1) = 31 + 18 = 49
scale = max(6, 7 + 10 + 1) = 18

scale опять же уменьшаем на 11, получаем 7
все вычисления производились по формулам, описанным здесь:
http://msdn.microsoft.com/en-us/library/ms190476.aspx

при сравнении же нумериков, насколько я понимаю, они оба будут приводиться (по возможности) к типу c наибольшим scale.
вот и получим, что результат avg(speed) <> avg(speed*1.0)

вот пример:
declare @t table (c decimal(19, 6))
insert into @t values (3)
insert into @t values (5)
insert into @t values (2)

select avg(c), sql_variant_property(avg(c), 'Precision'), sql_variant_property(avg(c), 'Scale') from @t
select avg(c*1.0), sql_variant_property(avg(c*1.0), 'Precision'), sql_variant_property(avg(c*1.0), 'Scale') from @t
select case when avg(c) = avg(c*1.0) then 'равны' else 'не равны' end from @t

Posted via ActualForum NNTP Server 1.4

28 авг 08, 18:40    [6121926]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
о. похоже, уже все поправили.

Posted via ActualForum NNTP Server 1.4

28 авг 08, 19:14    [6122043]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Bzik
Guest
Никак не пойму почему на 12-ю задачу такое решение не верно:

select min(q1.q_id+1), max(q1.q_id+1)
from utq q1
where not exists(select 1 from utq q2 where q1.q_id+1=q2.q_id)
and q1.q_id<>(select max(q_id) from utq)

Даже у себя на серве сделал табличку, нормально все находит при любых вариантах
29 авг 08, 14:20    [6125235]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Я
Guest
Что такое с сайтом???
15 сен 08, 14:09    [6185452]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
RastaCat
Member

Откуда:
Сообщений: 8227
Модераторам: может быть поправите тему топика и дадите в названии правильную ссылку на sql-ex.ru ?
15 сен 08, 14:41    [6185703]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
PSmith
Member

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

А все же про 15 задачу. У нее идея решения - cross join или она основана на where?
Нагромождение потому, что все cross делаю.

Она основана на "декартовом произведении". CROSS JOIN не нужен. Все гораздо проще. Сам бился 3 дня.
А вот обновленную 54-ю даже условие не могу понять Картинка с другого сайта.
15 сен 08, 16:58    [6186784]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
ahtolllka
Member

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

А все же про 15 задачу. У нее идея решения - cross join или она основана на where?
Нагромождение потому, что все cross делаю.

Она основана на "декартовом произведении". CROSS JOIN не нужен. Все гораздо проще. Сам бился 3 дня.
А вот обновленную 54-ю даже условие не могу понять Картинка с другого сайта.

да, 54я конкретно трешовая

кодить, походу, мало, а вот ломать мозг - основательно
15 сен 08, 17:54    [6187142]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
dake
Member

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

А все же про 15 задачу. У нее идея решения - cross join или она основана на where?
Нагромождение потому, что все cross делаю.

Она основана на "декартовом произведении". CROSS JOIN не нужен. Все гораздо проще. Сам бился 3 дня.
А вот обновленную 54-ю даже условие не могу понять Картинка с другого сайта.


а вот моё творение по 15 не оцениш...?

чё тут не так

select distinct model from PC
where speed in
(select MishPC.speed from
(select type ,color, price, screen, ram from
(select Vitprin.type,Vitprin.color,Vitprin.price, Olp.screen, Olp.ram,
case
when (Len(Olp.model)>3) and (Len(Vitprin.model)>3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1) and substring(Olp.model,4,len(Olp.model)-3) = substring(Vitprin.model,4,len(Vitprin.model)-3)) then 1
when (Len(Olp.model)=3) and (Len(Vitprin.model)=3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1)) then 1
end as flag
from
(select * from Laptop where len(model)>2) as Olp join ((select * from Printer where len(model)>2)) Vitprin
on substring(Olp.model, 1, 2) = substring(Vitprin.model, 1,2)) as vitolp
where flag = 1) as Vitolp
join Printer Tanprin on Vitolp.type != Tanprin.type and Vitolp.color = Tanprin.color
join Laptop Dimlp on Dimlp.screen = Vitolp.screen+3
join PC MishPC on MishPC.price = Tanprin.price*4
where (select maker from Product where model = Dimlp.model) = (select maker from Product where model = MishPC.model))
and
hd in
( select Dimlp.hd from
(select type ,color, price, screen, ram from
(select Vitprin.type,Vitprin.color,Vitprin.price, Olp.screen, Olp.ram,
case
when (Len(Olp.model)>3) and (Len(Vitprin.model)>3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1) and substring(Olp.model,4,len(Olp.model)-3) = substring(Vitprin.model,4,len(Vitprin.model)-3)) then 1
when (Len(Olp.model)=3) and (Len(Vitprin.model)=3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1)) then 1
end as flag
from
(select * from Laptop where len(model)>2) as Olp join ((select * from Printer where len(model)>2)) Vitprin
on substring(Olp.model, 1, 2) = substring(Vitprin.model, 1,2)) as vitolp
where flag = 1) as Vitolp
join Printer Tanprin on Vitolp.type != Tanprin.type and Vitolp.color = Tanprin.color
join Laptop Dimlp on Dimlp.screen = Vitolp.screen+3
join PC MishPC on MishPC.price = Tanprin.price*4
where (select maker from Product where model = Dimlp.model) = (select maker from Product where model = MishPC.model))
and
ram in
( select Vitolp.ram from
(select type ,color, price, screen, ram from
(select Vitprin.type,Vitprin.color,Vitprin.price, Olp.screen, Olp.ram,
case
when (Len(Olp.model)>3) and (Len(Vitprin.model)>3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1) and substring(Olp.model,4,len(Olp.model)-3) = substring(Vitprin.model,4,len(Vitprin.model)-3)) then 1
when (Len(Olp.model)=3) and (Len(Vitprin.model)=3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1)) then 1
end as flag
from
(select * from Laptop where len(model)>2) as Olp join ((select * from Printer where len(model)>2)) Vitprin
on substring(Olp.model, 1, 2) = substring(Vitprin.model, 1,2)) as vitolp
where flag = 1) as Vitolp
join Printer Tanprin on Vitolp.type != Tanprin.type and Vitolp.color = Tanprin.color
join Laptop Dimlp on Dimlp.screen = Vitolp.screen+3
join PC MishPC on MishPC.price = Tanprin.price*4
where (select maker from Product where model = Dimlp.model) = (select maker from Product where model = MishPC.model))
and
price in
( select Vitolp.price from
(select type ,color, price, screen, ram from
(select Vitprin.type,Vitprin.color,Vitprin.price, Olp.screen, Olp.ram,
case
when (Len(Olp.model)>3) and (Len(Vitprin.model)>3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1) and substring(Olp.model,4,len(Olp.model)-3) = substring(Vitprin.model,4,len(Vitprin.model)-3)) then 1
when (Len(Olp.model)=3) and (Len(Vitprin.model)=3) and (substring(Olp.model,3,1) != substring(Vitprin.model,3,1)) then 1
end as flag
from
(select * from Laptop where len(model)>2) as Olp join ((select * from Printer where len(model)>2)) Vitprin
on substring(Olp.model, 1, 2) = substring(Vitprin.model, 1,2)) as vitolp
where flag = 1) as Vitolp
join Printer Tanprin on Vitolp.type != Tanprin.type and Vitolp.color = Tanprin.color
join Laptop Dimlp on Dimlp.screen = Vitolp.screen+3
join PC MishPC on MishPC.price = Tanprin.price*4
where (select maker from Product where model = Dimlp.model) = (select maker from Product where model = MishPC.model))
16 сен 08, 09:39    [6188573]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
PSmith
Member

Откуда: СПб
Сообщений: 245
dake
а вот моё творение по 15 не оцениш...?

чё тут не так
...

select distinct model from PC [Коля]
Это хорошо. Остальное надо упрощать. Картинка с другого сайта.
Не надо пытаться джойнить все со всем, почитай про декартово произведение.

ПС
Я потом вспомнил, когда-то в молодости строил кадровые отчеты на FoxPro по этому принципу.
Нужно было выбрать например "мужчин, имеющих детей, закончивших институт не более 5 лет назад,
работающих на рабочих специальностях, не членов партии". Причем для половины признаков отдельные таблицы.
16 сен 08, 11:14    [6189050]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
Kimmy
Member

Откуда: Донецк
Сообщений: 162
простите 54 это эта ?


Задание: 54
С точностью до 2-х десятичных знаков определите среднее число орудий всех линейных кораблей (учесть корабли из таблицы Outcomes)

Impossible is nothing (c) Nike
16 сен 08, 11:17    [6189077]     Ответить | Цитировать Сообщить модератору
 Re: Ваше мнение об упражнениях SELECT на http://sql.ipps.ru  [new]
PSmith
Member

Откуда: СПб
Сообщений: 245
Kimmy
простите 54 это эта ?


Задание: 54
С точностью до 2-х десятичных знаков определите среднее число орудий всех линейных кораблей (учесть корабли из таблицы Outcomes)

Нет. 54-я из второго этапа.
16 сен 08, 11:54    [6189344]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 19 20 21 22 23 [24] 25 26 27 28 .. 31   вперед  Ctrl
Все форумы / Microsoft SQL Server Ответить