Loading...
ZvetanIG avatar ZvetanIG 907 Точки

[Homework] Databases - SQL Basics

Здравейте,

според мен това е първото домашно, което си заслужава да бъде споделено.

Ето го и моето.  ЦЪК

Всичко е в един файл.  Ако маркирате определена заявка и натиснете бутона Execute, ще се изпълни само тя. 

Някои от задачите могат да станат по няколко начина, за това очаквам с нетърпение и вашите домашни.

9
Databases Basics 12/02/2015 16:41:34
Valleri avatar Valleri 304 Точки

А MiddleName на Employees?

WHERE (e.HireDate BETWEEN '2001' AND '2005') AND ....

Тук си мисля че е по-добра практика, а и по-сигурно да се wrapp-не e.HireDate в YEAR()

3
10/02/2015 15:53:05
ZvetanIG avatar ZvetanIG 907 Точки

Щом има FirstName и LastName, то е ясно какво се  прави когато искаме и MiddleName.   А относно YEAR() драсни една заявка ще се радваме да видим как става...smile

0
10/02/2015 16:26:10
Valleri avatar Valleri 304 Точки

Нарочно го споменах защото в записите има NULL MiddleName, което ако се съедини с FirstName, LastName ще изкара NULL и трябва да се заобиколи : Р 

Ето ги заявките: http://pastebin.com/TBCLktpG

6
10/02/2015 17:04:54
borislavml avatar borislavml 368 Точки

Това със SELECT REPLACE e извратено smile Хареса ми, къде го намери?Нещо не мога да му схвана синтаксиса обаче със всички тия вложени скоби. Аз ползвам COALESCE(value,'string', etc..), което връща първата не NULL стйоност в изредената поредица.Като му сложиш примерно COALESCE(t.Name,'NA') и при town = NULL връща 'NA'  в колоната. ЦЪК

Иначе гледам, че има и някакви функции ISNULL(), IFNULL(), но не ми захапват на 2014-то.Може да са ги разкарали или да са ми бъгнати настройките на SQL SERVER-a

1
g.stoyanov avatar g.stoyanov 776 Точки

Колегата  Valleri е споделил някои от проблемите в това домашно!

Ето и моите заявки.

 

Edit: М/у другото 13 задача е с доста двусмислено - направо неразбираемо условие:

Problem 13.  Write a SQL query to find the salary of all employees whose salary is in the range [20000…30000].

Бих желал да споделите вашите интерпретации на условието.

При мен поне, бройката им е 2-3 :

1.Да изведем сумата на заплатите в оказаната граница.

2.Да изведем всички заплати в тази граница без да има повтарящи се.

3.Както съм го направил - да изведем всички работници с тези заплати.

:)

 

Keep calm and learn to <code>.

1
11/02/2015 01:34:56
Valleri avatar Valleri 304 Точки

Според мен си е 3 вариант. :)

0
kiko144 avatar kiko144 795 Точки

Ето го и моето домашно.

 

Kато цяло бяха лесни задачките.

Освен на 13 задача, където има двусмислие, аз намерих и още едно (поне за мен).

Write a SQL query to find all employees, along with their manager and their address.

Не схванах дали трябва да изпринтиме адресите на мениджърите или тези на работниците. 

За това изпринтих и 2-те (не съм сигурен, дали е най-ефективния начин)

4
yavor2000 avatar yavor2000 114 Точки

Цецо, имаш грешка в 24-та, и не само ти.

Когато търсим дата само по годината, например 2005 sql я приема като '2005/01/01' - така пропускаме служителите наети през останалите дни в 2005, а те са трима.

Правилно е: BETWEEN '1995/01/01' AND '2005/12/31'

3
XmUrF avatar XmUrF 363 Точки

Аз на 24-та задача понеже не бях сигурен дали ако напишем само годината като стринг(пък и за да съм сигурен във формата)  ще се справи да търси в колона от тип datetime го направих със

AND (e.HireDate BETWEEN (CONVERT(DATETIME, '19950101', 112)) AND (CONVERT(DATETIME, '20051231', 112)))

както имаше такъв пример в презентацията. Това с Middle Name-a въобще съм го пропуснал, че го има.

Иначе за мен объркваща задача беше 8-ма, където се иска да търсим имейли, пък то такава колона няма :). После разбрах, че трябва да си я "направим" един вид.

2
Reath avatar Reath 188 Точки

Ето и още едно домашно: цък

24-та беше интересна, само заради нея ми се наложи да се допитам до гугъл как да процедирам. Попадайки на няколко статии стигнах до заключението, че е окей да си кажем датата като string и всичко си заспива.

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