Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - запрос SQL

Ответить
Настройки темы
Разное - запрос SQL

Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день форумчане с праздничком Вас!!!
Помогите пожалуйста с одной вещью есть sql запрос к базе данных AdwentureWorks2008 поднятой на SQLServer 2008
Код: Выделить весь код
BEGIN TRY 
select 
      t1.FirstName,t1.LastName,t4.Name as divisionTitle,t2.JobTitle,t3.StartDate,t3.EndDate 
from 
     person.person t1, HumanResources.Employee t2, HumanResources.EmployeeDepartmentHistory t3, HumanResources.Department t4 

where 
     t1.BusinessEntityID = t2.BusinessEntityID and t2.BusinessEntityID = t3.BusinessEntityID and t3.DepartmentID = t4.DepartmentID 
     and t3.StartDate <= '01.01.2004'

END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber; END CATCH;
он выдает данные


Вопрос заключается вот в чем
При выборе даты нужно указывать где этот человек работал или работает. К примеру:
если мы устанавливаем дату 01.01.2004 то получаем строку
Rob Walters Engineering Senior Tool Designer 05.01.2002 30.06.2004

а если выбираем 01.10.2005 то получаем
Rob Walters Tool Design Senior Tool Designer 01.07.2004


Мне не надо писать код, объяснять основы SQL запросов - я тупо не могу въехать в логику того как это делается!!!!!

P.S. Я конечно понимаю праздник и я со своими глупыми вопросами тут, но все таки у меня уже мозги кипят))) Еще раз всех с праздником

Отправлено: 21:29, 09-05-2013

 

Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


virus8, ну а чего тебе не понятно?
Смотри, у тебя идет выборка SELECT поля, откуда, которые(!) WHERE t3.StartDate <= '01.01.2004'
Соотв. от этого поля и идет просмотр. В первом случае
Rob Walters Engineering Senior Tool Designer 05.01.2002(<=01.01.2004) 30.06.2004, во втором
Rob Walters Tool Design Senior Tool Designer 01.07.2004 (<=01.10.2005)
Поле t3.EndDate очевидно NULL и по этому не печатается. Т.е. при желании его надо выводить явно.
Собственно говоря наличие данных в других полях нам безразлично, главное чтобы индексы совпадали и StartDate соответствовал условию.
Все нормально, я не вижу причин для беспокойства

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 23:34, 09-05-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для virus8

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


Вот вроде что то навоял))
Код: Выделить весь код
BEGIN TRY 
select 
      t1.FirstName,t1.LastName,t4.Name as divisionTitle,t2.JobTitle,t3.StartDate,t3.EndDate 
from 
     person.person t1, HumanResources.Employee t2, HumanResources.EmployeeDepartmentHistory t3, HumanResources.Department t4 

where 
     t1.BusinessEntityID = t2.BusinessEntityID and t2.BusinessEntityID = t3.BusinessEntityID and t3.DepartmentID = t4.DepartmentID 
     and (t3.EndDate  > " + SaveText.Date +
            " or t3.EndDate is null) and (t3.StartDate  < " + SaveText.Date + " or t3.StartDate = " + SaveText.Date + ")"


END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber; END CATCH;
где SaveText.Date нужное мне число - вроде нормально отрабатывает)))
А так спасибо - твой ответ кое-что прояснил!

Отправлено: 23:52, 09-05-2013 | #3


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Даты лучше писать в формате ISO 8601

Отправлено: 16:35, 15-05-2013 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - запрос SQL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - SQL запрос с параметрами konstantin80 Программирование и базы данных 2 17-09-2012 09:18
Delphi - SQL запрос с параметром iliya24 Программирование и базы данных 1 30-01-2010 10:28
sql запрос E-mail Вебмастеру 20 30-12-2006 22:31
SQL запрос pauluss Вебмастеру 5 11-06-2004 09:14
SQL-запрос anridir Программирование и базы данных 2 23-09-2002 07:11




 
Переход