Нужна помощь по SQL

12
paras
На сайте с 30.03.2005
Offline
83
#11

SELECT c.country,

CASE WHEN

s.launched IS NULL

THEN NULL

ELSE COUNT(*)

END as Qty, s.launched

FROM Classes c LEFT JOIN Ships s ON c.class = s.class

GROUP BY c.country, s.launched

Качественные и кликабельные баннеры. (http://www.banart.ru) Более 2-х лет на рынке. Тест: Умеете ли Вы разумно тратить деньги? (http://www.testplanet.ru/tests/start/?test=135)
S
На сайте с 14.04.2008
Offline
60
#12

Интересный вариант с CASE :) И, по идее, полностью согласуется с логикой автора задачи.

Теперь если завернуть это в мой 2-й запрос из предложенных выше - по идее должно пройти проверку и на доп. базе, нет?

То есть если сделать так

SELECT t1.country,t1.Qty,min(t1.launched)

FROM (
...
) AS t1
LEFT JOIN (
...
) AS t2 ON t1.country=t2.country AND t1.Qty<t2.Qty
WHERE t2.Qty IS NULL
GROUP BY t1.country.t1.Qty

где вместо многоточий в скобках подставить ваш запрос, то все должно сработать. Теоретически :) Проверить пока нет возможности...

paras
На сайте с 30.03.2005
Offline
83
#13

Нет, не сработало.

Your query produced correct result set on main database, but it failed test on second, checking database.

* Wrong number of records (more by 4)

Hints to task #43

Country without ships in database should be taken into account.

S
На сайте с 14.04.2008
Offline
60
#14

Уже самому интересно, что ему не нравится. Чуть позже посмотрю...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий