Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос с датой.  [new]
Bbbqqq
Member

Откуда:
Сообщений: 44
Опять туплю и не могу понять что сделать.
Допустим у нас имеется таблица.
В ней поля id ,Мес открытия счета,
Мес закрытия.
К примеру.
1,01-01-2015,01,04,2015
2,01-02-2015,02-02-2015

Счёт может быть открыт в феврале и закрыи на след день.
Надо вывести все счета активные за февраль месяц. Если даже он всего 1 день был активен

Не прошу сделать за меня, дайте подсказку и буду сап копать, спасибо:)
27 май 17, 12:31    [20516862]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
bideveloper
Member

Откуда:
Сообщений: 484
IN?
27 май 17, 13:20    [20516930]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
londinium
Member

Откуда: Киев
Сообщений: 1136
Если я не туплю жестко в субботу, то как-то так

DECLARE @InMonthFirstDate DATE;
DECLARE @InMonthLastDate DATE;

SELECT @InMonthFirstDate='20170201';
SELECT @InMonthLastDate='20170228';

WITH ACCOUNTS(ACCOUNT_ID,ACCOUNTOPENDATE,ACCOUNTCLOSEDATE) AS
(
  SELECT 1 ,CAST('20161231'AS DATE),CAST('20170125'AS DATE) 
  
  UNION ALL
  
  SELECT 2,CAST('20170130'AS DATE),CAST('20170209'AS DATE)
  
  UNION ALL
  
  SELECT 3,CAST('20170201' AS DATE),CAST('20170228'AS DATE)
  
  UNION ALL
  
  SELECT 4,CAST('20170228'AS DATE),CAST('20170308'AS DATE)
  
  UNION ALL
  
  SELECT 5,CAST('20170215'AS DATE),CAST('20170509'AS DATE)
  
  UNION ALL
  
  SELECT 6,CAST('20170326'AS DATE),CAST('20171101'AS DATE)
)

SELECT A.ACCOUNT_ID,A.ACCOUNTOPENDATE,A.ACCOUNTCLOSEDATE
FROM ACCOUNTS A
WHERE A.ACCOUNTOPENDATE<=@InMonthLastDate
AND A.ACCOUNTCLOSEDATE>=@InMonthFirstDate
27 май 17, 13:40    [20516952]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Bbbqqq
Member

Откуда:
Сообщений: 44
Разобрался, все гораздо проще.
Теперь надо получить вот такое)

К сообщению приложен файл. Размер - 70Kb
27 май 17, 20:47    [20517359]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Добрый Э - Эх
Guest
Bbbqqq,

ну так если разобрался и всё намного проще, то какие проблемы?
29 май 17, 08:31    [20518899]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Bbbqqq
Member

Откуда:
Сообщений: 44
Ну первое задание сделал, осталось второе.скрин выше, что должно получится

Разбить теперь по месяцам надо.


договор 1,дата открытия 01.01.2015,закрытия 10.03.2015


И.е.
Договор 1,месяц январь, был активен 30 дней
Договор 1, февраль, 28 дней
Договор 1,март, 10 дней
10 так как его закрыли 10 числа.


Заранее спасибо!

П.с. тестовое задание на собеседование.
29 май 17, 12:35    [20519688]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Bbbqqq
П.с. тестовое задание на собеседование.

Ну так может стоит себе признаться, что вы не тянете эту работу?
Или работу тоже с помощью форума делать планируете?
29 май 17, 12:39    [20519699]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Bbbqqq,

автор
П.с. тестовое задание на собеседование.

всех возьмут?
29 май 17, 12:50    [20519738]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Bbbqqq
Member

Откуда:
Сообщений: 44
Minamoto,
Не тяну? Может быть. Скорее из за только самостоятельного "обучения" дома и из за отсутствия опыта.
Работу как мне кажется я свою буду выполнять хорошо, буду приходить и если надо, учиться дома до ночи, а потом утром опять на работу. Есть большой интерес к этой сфере.

Да я не знаю, как сдедать столь элементарные вещи(для меня пока что не элементарные), но я готов учиться и постигать трудности.
Этим запросом сотрудники каждый день решают "поставленные задания", возможно , они тоже пришли на работу, не зная как его написать. Но им показали раз, они поняли и стали чётко выполнять свою работу.
К слову о работе.
Рассматривают людей без опыта. (Москва, зп до 40, банк)
С желанием обучаться. Ищут под себя, чтобы вырастить.
И знанием Sql на уровне лёгких запросов.(даже без подзапросов)
Дали вот такие задания. Вот...
29 май 17, 13:02    [20519790]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Bbbqqq
Member

Откуда:
Сообщений: 44
TaPaK,

Нет, только меня))
29 май 17, 13:03    [20519793]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20181
Bbbqqq
Надо вывести все счета активные за февраль месяц.

Открыт ранее 1 марта и закрыт позднее 31 января.
29 май 17, 13:18    [20519850]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
Bbbqqq
Member

Откуда:
Сообщений: 44
Akina,

Да, спасибо, это уже сделал) почти так)
29 май 17, 13:19    [20519858]     Ответить | Цитировать Сообщить модератору
 Re: Запрос с датой.  [new]
bideveloper
Member

Откуда:
Сообщений: 484
По второму вопросу можно сделать таблицу месяцев MonthFirstDate MonthLastDate. Затем для Accounts делаем join с этой таблицей и там уже количество дней несложно посчитать, когда у нас в строке есть все 4 даты ACCOUNTOPENDATE,ACCOUNTCLOSEDATE, MonthFirstDate MonthLastDate.
29 май 17, 14:47    [20520200]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить