|
Запрос (соединение не дает нужный результат) | ☑ | ||
---|---|---|---|---|
0
katerinaUniv
16.09.14
✎
15:22
|
Текст запроса ниже:
ВЫБРАТЬ ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо, СУММА(ЕСТЬNULL(ОсновныеНачисленияРаботниковОрганизаций.Результат, 0)) КАК Результат, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия КАК ПериодДействия ПОМЕСТИТЬ Начисления ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = &Физлицо И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия МЕЖДУ &ДатаПараметрС И &ДатаПараметрПо СГРУППИРОВАТЬ ПО ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия ПОМЕСТИТЬ Периоды ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия МЕЖДУ &ДатаС И &ДатаПо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Периоды.ПериодДействия, Начисления.ПериодДействия КАК ПериодДействия1, Начисления.ФизЛицо, Начисления.Результат ИЗ Периоды КАК Периоды ПОЛНОЕ СОЕДИНЕНИЕ Начисления КАК Начисления ПО Периоды.ПериодДействия = Начисления.ПериодДействия ГДЕ Начисления.ФизЛицо = &ФизЛицо И Периоды.ПериодДействия МЕЖДУ &ДатаС И &ДатаПо И Начисления.ПериодДействия МЕЖДУ &ДатаС И &ДатаПо по условию параметры стоят с начала года по октябрь. Таблица периоды - это список месяцев, а из начислений берутся суммы зп. В итоге показываются только те месяцы, когда есть начисления. В чем моя ошибка? |
|||
1
Балоун
16.09.14
✎
15:24
|
ГДЕ
Начисления.ФизЛицо = &ФизЛицо |
|||
2
katerinaUniv
16.09.14
✎
15:27
|
(1)убрала отбор внизу, не получилось ничего, все те же 6 месяцев
|
|||
3
katerinaUniv
16.09.14
✎
15:27
|
мне нужно получить за заданный период все начисления по сотруднику, если они были
|
|||
4
Килограмм
16.09.14
✎
15:30
|
(0) тут можно вместо СОЕДИНЕНИЕ сделать ОБЪЕДИНИТЬ, где поле объединия будет ПериодДействия, тогда и от не нужного ПериодДействия1 избавишься
|
|||
5
katerinaUniv
16.09.14
✎
15:31
|
(4)как это делается?
|
|||
6
Килограмм
16.09.14
✎
15:32
|
(0) и в последней таблице второй раз отбор по физ лицу не нужен, он уже есть при создании вт Начисления
|
|||
7
Килограмм
16.09.14
✎
15:32
|
||||
8
Крошка Ру
16.09.14
✎
15:33
|
(4)(5) Не надо
Просто убрать последнее ГДЕ(все отборы уже сделаны во временных таблицах) и сделать левое соединение |
|||
9
Крошка Ру
16.09.14
✎
15:34
|
+(8) и ПериодДействия1 не нужен. По периоду идет соединение и там будет то же, что и в ПериодДействия
|
|||
10
katerinaUniv
16.09.14
✎
15:34
|
(8) (9) Спасибо! заработало!!!
|
|||
11
katerinaUniv
16.09.14
✎
15:35
|
вот итоговый вариант:
ВЫБРАТЬ СУММА(ЕСТЬNULL(ОсновныеНачисленияРаботниковОрганизаций.Результат, 0)) КАК Результат, ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия КАК ПериодДействия ПОМЕСТИТЬ Начисления ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = &Физлицо И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия МЕЖДУ &ДатаПараметрС И &ДатаПараметрПо СГРУППИРОВАТЬ ПО ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия ПОМЕСТИТЬ Периоды ИЗ РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций ГДЕ ОсновныеНачисленияРаботниковОрганизаций.ПериодДействия МЕЖДУ &ДатаС И &ДатаПо ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Периоды.ПериодДействия, Начисления.ПериодДействия КАК ПериодДействия1, Начисления.Результат ИЗ Периоды КАК Периоды ЛЕВОЕ СОЕДИНЕНИЕ Начисления КАК Начисления ПО Периоды.ПериодДействия = Начисления.ПериодДействия //ГДЕ // Периоды.ПериодДействия МЕЖДУ &ДатаС И &ДатаПо // И Начисления.ПериодДействия МЕЖДУ &ДатаС И &ДатаПо |
|||
12
Крошка Ру
16.09.14
✎
15:36
|
И ещё совет: т.к. соединение левое, то
ЕстьNull(Начисления.Результат,0) |
|||
13
katerinaUniv
16.09.14
✎
15:38
|
ок
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |