Имя: Пароль:
1C
1С v8
Помогите запросом сделать такую штуку
0 shlyahtich
 
14.03.12
15:43
Вобщем вся наша бухия это как панель. Суть в том, что например
выставляют цены на себя девушки легкого поведения с такой то
даты я стою столько то
А бухия просит за период выдать сведения...

Вот что подали красавицы
фамилия        дата    цена

Иванова        01.12.11    5
Иванова     02.12.11    6
Иванова        13.12.11    7
Иванова        10.01.12    8
Иванова        15.01.12    9
Сидорова    12.11.11    4
Сидорова    14.12.11    5
Сидорова    19.12.11    6
Сидорова    20.01.12    7
Сидорова    30.01.12    8

А вот что надо получить.

За период "январь" цена на такая значит
       
Иванова       01.01.12    7
Иванова       10.01.12    8
Иванова       15.01.12    9
Сидорова   01.01.12    6
Сидорова   20.01.12    7
Сидорова   30.01.12    8

Если я делаю с отбором по одной сотруднице то все понятно как

ВЫБРАТЬ
   
   Фамилия,
   Цена,
       Дата
ИЗ
   бабц
ГДЕ
   фамилия = &фамилия
   Дата <= &ДатаРасчета
   И ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата >= &ДатаНачалаМесяца

ОБЪЕДИНИТЬ

ВЫБРАТЬ ПЕРВЫЕ 1

ВЫБРАТЬ
   
   Фамилия,
   Цена,
       Дата
ИЗ
   бабц
ГДЕ
   фамилия = &фамилия
   И ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата <= &ДатаНачалаМесяца

а как сделать запросом по всем чтоб выкинуть лишнее...
Потом можно с 1 января посчитать сколько было трудодней например по такой тт цене )))

Вобщем шутка - но суть такая
Есть ли идеи?
1 Ненавижу 1С
 
гуру
14.03.12
15:46
если это РС, то поможет срез первых, например
2 Stim
 
14.03.12
15:47
а можно всех посмотреть?
3 MaxisUssr
 
14.03.12
15:49
"а как сделать запросом по всем чтоб выкинуть лишнее..."
(0)
так что сделать-то надо? И что такое лишнее?
4 Dmitrii
 
гуру
14.03.12
15:55
группировать по Фамилия, Максимум(дата)

получишь список тёток с датами цен на дату <= &ДатаНачалаМесяца
эту таблицу соединишь внутренним соединением с такой же (без группировки) по Фамилия и по Дата - получишь таблицу тёток с датами и ценами на дату <= &ДатаНачалаМесяца
5 Dmitrii
 
гуру
14.03.12
16:06
Что-то типа:

ВЫБРАТЬ
 ТаблицаБаб.Фамилия,
 МАКСИМУМ(ТаблицаБаб.Дата) КАК Дата
ПОМЕСТИТЬ ПоследниеДатыЦенНаНачалоМесяца
ИЗ
 ТаблицаБаб КАК ТаблицаБаб
ГДЕ
 Дата <= &ДатаНачалаМесяца
СГРУППИРОВАТЬ ПО
 Фамилия
;
ВЫБРАТЬ
 ТаблицаБаб.Дата,
 ТаблицаБаб.Фамилия,
 ТаблицаБаб.Цена
ИЗ
 ТаблицаБаб КАК ТаблицаБаб
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеДатыЦенНаНачалоМесяца КАК ПоследниеДатыЦенНаНачалоМесяца
     ПО ТаблицаБаб.Фамилия = ПоследниеДатыЦенНаНачалоМесяца.Фамилия
       И ТаблицаБаб.Дата = ПоследниеДатыЦенНаНачалоМесяца.Дата
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
  ТаблицаБаб.Дата,
  ТаблицаБаб.Фамилия,
  ТаблицаБаб.Цена
ИЗ
  ТаблицаБаб КАК ТаблицаБаб
ГДЕ
  ТаблицаБаб.Дата >= &ДатаНачалаМесяца
6 Dmitrii
 
гуру
14.03.12
16:08
+ к (5) Ну можно еще результат последнего запроса выбрать еще раз и отсортировать по фамилии и по дате. Или сделать тоже самое завернув последний запрос во вложенный.
7 shlyahtich
 
14.03.12
16:15
(3)
лишними являются строки в первой таблице, где Дата менее начала месяца
НО! Из предыдущего месяца последняя цена должна перекочевать в таблицу с датой = началу месяца
8 shlyahtich
 
14.03.12
16:20
(5) наверно - да возможно тогда удастся отобрать
(3) а лишнее - это значит выбрать все кроме того что в запросе таком то
то есть

select * FROM where Id NOT IN (select *)

в скуле это просто, но и в 1С можно.
То есть я отберу все что было в прошлом месяце, кроме макс(дата)
и выкину это из своего запроса
А еще остается заменить дату менее начала месяца на его начало для чего наверно подойдет "Выбор"
9 Dmitrii
 
гуру
14.03.12
16:24
(8) >> для чего наверно подойдет "Выбор"

Ну нафиг.
Проще в примере из (5) во втором запросе пакета в первом запросе объединения вместо поля ТаблицаБаб.Дата указать - &ДатаНачалаМесяца.
10 shlyahtich
 
14.03.12
16:26
(9)
согласен
11 shlyahtich
 
14.03.12
17:04
В качестве итогга.
Суть в том что к справочнику ДоговораКонтрагентов добавлена табчасть
ТаблицаПроцентовПоДоговору с полями Дата и ПроцентГодовой
В ситуации когда идет расчет процентов по договору займа/кредиту
надо сделать запрос такой, чтоб заполнение его соотвтествовало траншам/ставкам и один из моментов в том, что ставки могут быть фиксированные, переменные в зависимости от ставки ЦБ или устанавливаться вручную - для чего эта таблица и задана. Запрос для заданного периода работает верно.
Надо еще только отсечь в нем те проценты, дата которых > окончания месяца - периода

Но это еще не все )))

На самом деле этот запрос еще надо подвязать к самому справочнику - но к сути задачи не относится и не интересно наверно.

(5) спасибо


ВЫБРАТЬ
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка.Владелец,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка КАК Договор,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.НомерСтроки,
   МАКСИМУМ(ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата) КАК ДатаПроцента,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата КАК ДатаФакт,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.ПроцентГодовой КАК ПроцентГодовой
ПОМЕСТИТЬ ПоследниеДатыЦенНаНачалоМесяца
ИЗ
   Справочник.ДоговорыКонтрагентов.ТаблицаПроцентовПоДоговору КАК ДоговорыКонтрагентовТаблицаПроцентовПоДоговору
ГДЕ
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата <= &ДатаНачалаМесяца

СГРУППИРОВАТЬ ПО
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.ПроцентГодовой,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.НомерСтроки,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка.Владелец,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка КАК Договор,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.НомерСтроки,
   &ДатаНачалаМесяца,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата КАК ДатаФакт,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.ПроцентГодовой КАК ПроцентГодовой
ИЗ
   Справочник.ДоговорыКонтрагентов.ТаблицаПроцентовПоДоговору КАК ДоговорыКонтрагентовТаблицаПроцентовПоДоговору
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПоследниеДатыЦенНаНачалоМесяца КАК ПоследниеДатыЦенНаНачалоМесяца
       ПО ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка = ПоследниеДатыЦенНаНачалоМесяца.Договор
           И ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата = ПоследниеДатыЦенНаНачалоМесяца.ДатаПроцента

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка.Владелец,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Ссылка,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.НомерСтроки,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата,
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.ПроцентГодовой
ИЗ
   Справочник.ДоговорыКонтрагентов.ТаблицаПроцентовПоДоговору КАК ДоговорыКонтрагентовТаблицаПроцентовПоДоговору
ГДЕ
   ДоговорыКонтрагентовТаблицаПроцентовПоДоговору.Дата >= &ДатаНачалаМесяца