Loading...
ktodorov avatar ktodorov 42 Точки

[DB-Fundamentals - Table Relations] - Problem 13. Employee 24

Здравейте,

Някой може ли да ми каже защо следното решение не минава в judge:

SELECT e.employee_id, e.first_name,
CASE
	WHEN p.start_date > '20050101' THEN NULL
	ELSE p.name
	END AS project_name
FROM employees AS e
INNER JOIN employees_projects AS ep
ON e.employee_id = ep.employee_id
INNER JOIN projects AS p
ON ep.project_id = p.project_id
WHERE e.employee_id = 24

Когато реша задачата по този начин:

SELECT e.employee_id, e.first_name, p.name AS project_name
FROM employees AS e
INNER JOIN employees_projects AS ep
ON e.employee_id = ep.employee_id
LEFT OUTER JOIN projects AS p
ON ep.project_id = p.project_id
AND p.start_date < '20050101'
WHERE e.employee_id = 24

judge ми приема решението за вярно.

Резултатът от двете решения е идентичен, защо първото се отчита от judge като грешно?

Поздрави

Тагове:
1
Module: Java DB
a_dimitrov avatar a_dimitrov 20 Точки

Има ли някакъв проблем с джъдж, защото в момента дава грешка за всякакви решения.....копирах твоето примерно решение за проба и пак дава грешка.

0
Bojo96 avatar Bojo96 Trainer 147 Точки

Да, MySQL пада в Judge, поради бъг. Скоро ще бъде fix-нат и няма да има проблеми. Извиняваме се за неудобството.

1
kvadrat4o avatar kvadrat4o 17 Точки

При мен се получава все още, ако ползвам CASE / WHEN

0
21/09/2017 09:30:26
Todor_Kolev avatar Todor_Kolev 0 Точки

това не минава:

Select
e.EmployeeID
,e.FirstName
,case
        when datepart(year,p.StartDate) = 2005 then 'NULL'
        else p.Name
        end as ProjectName
from Employees as e
Join EmployeesProjects as ep
on e.EmployeeID = ep.EmployeeID
join Projects as p
on ep.ProjectID = p.ProjectID
where e.EmployeeID = 24

0
icowwww avatar icowwww 2779 Точки

Здравей @Todor_Kolev,

Условието е написано малко двусмислено.

Когато пишеш:

when datepart(year,p.StartDate) = 2005 then 'NULL'

трябва да използваш NULL за да изкараш празна стойност, а не стойност NULL, затова премахни кавичките:

Select
e.EmployeeID
,e.FirstName
,case
        when datepart(year,p.StartDate) = 2005 then NULL
        else p.Name
        end as ProjectName
from Employees as e
Join EmployeesProjects as ep
on e.EmployeeID = ep.EmployeeID
join Projects as p
on ep.ProjectID = p.ProjectID
where e.EmployeeID = 24

Ето разликата

0
09/06/2022 23:16:41
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.