Loading...
JimboLP avatar JimboLP 0 Точки

Problem 10 от Programmability and Transactions

Може ли някой да ми каже къде греша в 10та задача "People with Balance Higher Than"? Спрямо моето разбиране на условието и резултата на локалната ми база всичко изглежда наред. В Judge не минава по никакъв начин. Ето и КОДА

Тагове:
0
Databases Basics
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

изглежда ок махни 18,4  от decimal-a сложи procedure вместо proc  и аз бих махна и begin end да звучи странно но и за такива неща чупи идея си нямам защо,иначе ето го ти малко си си усложнил живота но ти е ок кода локално и при мен.

CREATE PROCEDURE usp_GetHoldersWithBalanceHigherThan (@Balance MONEY)
AS
SELECT ac.FirstName,ac.LastName  FROM AccountHolders AS ac
JOIN  Accounts AS a ON a.AccountHolderId=ac.Id
GROUP BY  ac.FirstName,ac.LastName
HAVING SUM(a.Balance)>@Balance

0
JimboLP avatar JimboLP 0 Точки

Благодаря за отговора. За параметъра, пробвах и само decimal и decimal(15,2), decimal(15,4). Не използвам MONEY, защото във всяка една лекция предупреждаваха да не се използва. Накрая открих проблема. :D В твоето решение, групираш по имената. Аз реших, че е възможно да има 2ма човека с еднакви имена (не е изключено) и реших че е по-добре да групирам по ID. Тествах, като добавих още един Account Holder със вече съществуващо име (различно ID) и твоята процедура ги групира в едно въпреки, че са различни акаунти. Според мен това не е правилен подход, но според Judge явно е. Ако изпита ни ще го проверява Judge, ни е спукана работата :)

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

ами не след половин дузина изпити в judge не е толкова страшно :Д просто се искат малко нерви.иначе на мен ми гърмя гърмя накрая сложих money въпреки че все повтарят че не е добре и мина.

А реално какви unit tests са написали е божа работа на какъв кеф или акъл е бил този които ги е писал.

Е тук бъркаш аз съм ги join-нал po аc.id няма как да се повтарят ac.id е уникално. А групирането по firstname lastname го иска sql иначе не можеш да ги използваш в select налага ми го синтаксиса и сървъра.Нямаш избор ако искаш да ги ползваш в заявката така че.Май трябва да порешаваш и почетеш още малко :Д

a.AccountHolderId=ac.Id това тук ми гарантира уникалност.

0
21/06/2018 12:37:08
JimboLP avatar JimboLP 0 Точки

Може би не ме разбра. Не казвам че решението ти е грешно (спрямо Judge определено). За ID-то, не съм казал че ще повториш уникално ID, а че ще комбинираш в едно двама човека с различно ID и еднакво име, защото не комбинираш по ID, а само по име. Ако не ми вярваш виж в ЛИНК-а. На screenshot-a са 3 result set-а:
1. Това е базата след като добавих за тест потребител със съществуващо име и различно ID (няма как да е еднакво).
2. Резултата от моята процедура,
3. Резултата от твоята процедура.
Тъй като в условието на задачата не е казано нищо относно групирането, подредбата и изобщо подхода към задачата (и това е основния проблем), според мен съм избрал по-правилен подход. Но ако това е вярно, то това значи че в SoftUni или ни учат на грешни практики (това не е вярно, защото в лекциите споменаха че е възможно да има 2ма човека в една база с еднакво име и затова да гледаме винаги ID-тата) или условията на задачите са непълни или обяснени неправилно.

0
TeodorStefanovPld avatar TeodorStefanovPld 1274 Точки

явно unit test-a e счупен но ac.id в group by оправи нещата. все пак и те се хора грешат :Д но да явно групирането пое имена изпуска уникалните Id-та но като го добавиш пак си работи,явно тестовете проверяват само имената но не и сумите срещу тях.

0
sukalu88 avatar sukalu88 43 Точки

This forum is awesome and has lots of helpful content here. Companies can use this content to further improve the quality of disposable nitrile gloves even though they have not received any complaints about them. However, there is still room for improvement. mapquest driving directions

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