Loading...
abetterman avatar abetterman 21 Точки

Exercises: Functions, Triggers and Transactions - задача 9. People with Balance Higher Than

Моля помогнете да си намеря грешката :

DELIMITER $$
CREATE PROCEDURE usp_get_holders_with_balance_higher_than(money_number INT(11))
BEGIN
SELECT first_name,last_name
FROM account_holders ah
JOIN accounts a
ON a.account_holder_id=ah.id
GROUP BY first_name
HAVING SUM(a.balance) > money_number
ORDER BY first_name,last_name,ah.id;
END $$

0
Databases Basics - MySQL
D.Dimov_96 avatar D.Dimov_96 74 Точки
Best Answer

Здравей abetterman,

В задачите са поставени моменти, за които да внимаваме.

При тази задача, изречението на което да обърним внимание е "The result should be sorted by first_name then by last_name alphabetically and account id ascending".

Посочено е да използваме таблицата accounts, защото е написано "account id". 

В базата от данни bank, има две таблици accounts и account_holders. Всяка от които има колона id.

Нужно е да изпозваш accounts.id или a.id при сортирането.

Също така заплатите са DOUBLE, а ти си използвал INT(11).

Още ено нещо, в тази задача първо се сортира по accounts.id после по first_name и накрая по last_name.

В твоя случай, кода ти ще бъде:

CREATE PROCEDURE usp_get_holders_with_balance_higher_than(money_number DOUBLE)
BEGIN
SELECT first_name,last_name
FROM account_holders ah
JOIN accounts a
ON a.account_holder_id=ah.id
GROUP BY first_name
HAVING SUM(a.balance) > money_number
ORDER BY a.id,first_name,last_name;
END 

Така написания код минава на 100/100 в judge.softuni.bg

Можеш да видиш моето решение: 

https://github.com/DimovDimo/Software-University-SoftUni/blob/master/Java-DB-September-2018/Database-Basics-MySQL-September-2018/16%2CDatabase%20Programmability%20-%20Exercise/Work/PART%20II%20%E2%80%93%20Queries%20for%20Bank%20Database/09.%20People%20with%20Balance%20Higher%20Than.sql

С уважение,

Димо Димов

студент в softuni.bg

0
abetterman avatar abetterman 21 Точки

Благодаря ти, колега. Не само правилно решение, но съм и впечатлен от изчерпателния начин на изразяване. Ако можех да гласувам бих го направил положително, но нямам 15 точки. Благодаря ти много.

0
Sandanski avatar Sandanski 4 Точки

Здрасти,

Аз също имах проблем със сортирането. В условието се казва, че трябва да сортираме по име, фамилия и накрая по id, но така за Judge дава грешен резултат . Опитай с ORDER BY accounts.id

0
abetterman avatar abetterman 21 Точки

Не и така не става. И според мен има нещо объркано в условието на тази задача и това я прави много по-трудна от тези със звездичките. Защото трябва да наулучкваш какво judje иска, което в условието не е написано. Но как би го направил, ако това е тест4 или тест5 примерно, в които не виждаш какво се подава като данни?

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