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

Откуда:
Сообщений: 255
Добрый день, форумчане! Столкнулся с проблемой, не могу реализовать..
Поступило задание от рук-ва, выбрать из таблицы проводок записи, где количество проводок по клиенту 2 (и более) в неделю.
Отчет формируется за определенный интервал.
Как реализовать на sql?
22 май 14, 13:10    [16054392]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
Glory
Member

Откуда:
Сообщений: 104751
denis_stell
Как реализовать на sql?

Сгруппировать по неделям. Посчитать количество. Отфильтровать те, где количество меньше 2
22 май 14, 13:11    [16054405]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
denis_stell
Member

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

Спасибо!
Можете посмотреть код?
SELECT b.CLIENT,a.ACC_CD_DB,a.ACC_CD_CR,DATEPART(WK,a.DT_OPDAY) as 'Week'
  FROM t1 a,t2 b where a.ACC_CD_CR=b.CODE and
  SUBSTRING(a.ACC_CD_CR,1,5) in (список счетов по кредиту) 
   and SUBSTRING(a.ACC_CD_DB,1,5) in (список счетов по дебету
   and a.DT_OPDAY between Convert(DATE,'20140301',104) and Convert(DATE,'20140331',104)
   group by DATEPART(WK,a.DT_OPDAY),a.ACC_CD_CR,a.ACC_CD_DB,b.CLIENT
   having COUNT(b.client)>=2
   order by DATEPART(WK,a.DT_OPDAY),b.CLIENT

где b.CLIENT - код клиента
a.ACC_CD_DB - счет дебета
a.ACC_CD_CR - счет кредита
a.DT_OPDAY - дата проводки
Не могу понять, count не отрабатывает нормально, в результате получаю проводки с кодом клиента, разбитыми на недели, но count не отбирает записи >2
связь t1 и t2 связаны по счету кредита, нужно для получения id клиента
22 май 14, 18:10    [16057273]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
denis_stell
Member

Откуда:
Сообщений: 255
Исправлюсь, count то отрабатывает,но мне нужно отобрать тех, у кого было количество проводок, больше либо равно 2 внутри каждой недели, по каждому клиенту
22 май 14, 19:32    [16057658]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
Glory
Member

Откуда:
Сообщений: 104751
denis_stell
внутри каждой недели, по каждому клиенту

почему тогда в группировке участвуют a.ACC_CD_CR,a.ACC_CD_DB ?
22 май 14, 19:40    [16057693]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
denis_stell
Member

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

так мне нужно отдать результат,где было бы видно корреспонденцию счетов
22 май 14, 22:30    [16058383]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
Glory
Member

Откуда:
Сообщений: 104751
denis_stell
так мне нужно отдать результат,где было бы видно корреспонденцию счетов

Вы тогда определитесь с условиями запачи
Если у клиента проводок несколько в неделю по разным счетам, то что будет ?
23 май 14, 00:10    [16058767]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
Добрый Э - Эх
Guest
denis_stell,

Как вариант - exists-подзапрос.
23 май 14, 04:58    [16059087]     Ответить | Цитировать Сообщить модератору
 Re: фильтр по записям, минимум 2 в неделю  [new]
denis_stell
Member

Откуда:
Сообщений: 255
Всем спасибо)
23 май 14, 11:54    [16060422]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить