Имя: Пароль:
1C
1С v8
Запросы: как объединить две таблицы в одном документе...
0 Andry_Boris
 
16.09.11
13:02
Подскажите плиз.
В документе есть 2 таблицы
Нужно объединить данные чтобы получилась одна рабочая таблица как это сделать?

Если не ошибаюсь это должен быть правый запрос?

1 таблица: РаботникиОрганизации
Поля:
1.1) Сотрудник
1.2) Сумма
1.3) Карточка

2 таблица: ПараметрыОплаты
Поля:
2.1) Сотрудник
2.2) ИсточникФинансирования

Нужно получить одну таблицу с полями
3.1) Сотрудник
3.2) Сумма
3.3) Карточка
3.4) ИсточникФинансирования

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

Но почему-то затраивает строки?!
1 Andry_Boris
 
16.09.11
13:10
ВЫБРАТЬ
   ВложенныйЗапрос.ИсточникФинансирования КАК ИсточникФинансирования,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Ссылка КАК Документ,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Сотрудник КАК Сотрудник,
   СУММА(ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Сумма) КАК Сумма,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.НомерКарточки
ИЗ
   Документ.ЗарплатаКВыплатеОрганизаций.РаботникиОрганизации КАК ЗарплатаКВыплатеОрганизацийРаботникиОрганизации
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ЗарплатаКВыплатеОрганизацийПараметрыОплаты.Сотрудник КАК Сотрудник,
           ЗарплатаКВыплатеОрганизацийПараметрыОплаты.ИсточникФинансирования КАК ИсточникФинансирования
       ИЗ
           Документ.ЗарплатаКВыплатеОрганизаций.ПараметрыОплаты КАК ЗарплатаКВыплатеОрганизацийПараметрыОплаты
       ГДЕ
           ЗарплатаКВыплатеОрганизацийПараметрыОплаты.Ссылка.Дата = &Дата) КАК ВложенныйЗапрос
       ПО ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Сотрудник = ВложенныйЗапрос.Сотрудник
ГДЕ
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Ссылка.Дата = &Дата

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.ИсточникФинансирования,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Сотрудник,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.НомерКарточки,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Ссылка

УПОРЯДОЧИТЬ ПО
   Сотрудник
ИТОГИ
   СУММА(Сумма)
ПО
   ИсточникФинансирования

вот ответ
разобрался
2 vicof
 
16.09.11
13:13
ОБЪЕДИНИТЬ
3 vicof
 
16.09.11
13:14
проще было бы
4 Andry_Boris
 
16.09.11
15:22
как проше???
5 qeos
 
16.09.11
15:28
"правый запрос" )
6 Andry_Boris
 
16.09.11
15:28
пример можно, а то я совсем запутался плиз!!!
7 Axel2009
 
16.09.11
15:34
выбрать 1
объединить все
выбрать 2
8 Andry_Boris
 
16.09.11
15:42
Вот запрос

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

ОБЪЕДИНИТЬ

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

но формируется не правильно!!!

отдельно все
9 qeos
 
16.09.11
15:43
группируй.. или отдай сделать это програмерам..
10 Axel2009
 
16.09.11
15:43
а как надо объединить 3 строки из 1ого запроса с 1ой строкой 2го запроса?
11 Andry_Boris
 
16.09.11
15:47
(10) Да
12 hhhh
 
16.09.11
15:47
(10) вообще-то правое соединение практически не используется. Где ты его откопал?
13 ptiz
 
16.09.11
15:47
(11) Тогда 45
14 Andry_Boris
 
16.09.11
15:49
(13)ЧТО ЕСТЬ 45
15 Axel2009
 
16.09.11
15:50
(14) это Да!
16 Axel2009
 
16.09.11
15:51
(10) я? правое? откопал? ненене
17 Andry_Boris
 
16.09.11
15:53
1 таблица: РаботникиОрганизации
Поля:
1.1) Сотрудник
1.2) Сумма
1.3) Карточка

2 таблица: ПараметрыОплаты
Поля:
2.1) Сотрудник
2.2) ИсточникФинансирования


Нужно получить одну таблицу с полями

3.1) Сотрудник - связующее поле между 1 и 2 таблицей
3.2) Сумма - из 1 таблицы
3.3) Карточка - из 1 таблицы
3.4) ИсточникФинансирования - из 2 таблицы
18 Axel2009
 
16.09.11
15:54
(17)
Сотр1 200 Карточка1
Сотр1 300 Карточка2

Сотр1 ИсточникФинансирования1
Сотр2 ИсточникФинансирования2

как должна выглядеть таблица итоговая?
19 Axel2009
 
16.09.11
15:55
Сотр1 200 Карточка1
Сотр1 300 Карточка2

Сотр1 ИсточникФинансирования1
Сотр1 ИсточникФинансирования2
точнее этот пример
20 Andry_Boris
 
16.09.11
15:58
4 колонки... в итоговой таблице
|сотрудник|сумма|карточка|источник|
21 ptiz
 
16.09.11
15:59
Т.е. должно быть
Сотр1 200 Карточка1  ИсточникФинансирования1
Сотр1 200 Карточка1  ИсточникФинансирования2
Сотр1 300 Карточка2  ИсточникФинансирования1
Сотр1 300 Карточка2  ИсточникФинансирования2

так?
22 ptiz
 
16.09.11
16:02
Пойми: твоя задача - указать тупой машине, каким образом пристыковать строки одной таблицы к строкам другой. По какому критерию?
23 Andry_Boris
 
16.09.11
16:02
Так
Т.е. должно быть
Сотр 200 Карточка  ИсточникФинансирования1
Сотр 150 Карточка  ИсточникФинансирования2

Карточка - одинаковое значение
Сотр - одинаковое значение
Суммы разные по ИсточникФинансирования
24 ptiz
 
16.09.11
16:03
если таблицы такие
Сотр 200 Карточка1
Сотр 150 Карточка2

Сотр ИсточникФинансирования1
Сотр ИсточникФинансирования2
Сотр ИсточникФинансирования3

то что делать?
25 Andry_Boris
 
16.09.11
16:05
Карточка - одинаковое значение
26 Axel2009
 
16.09.11
16:06
ну так и соединяй по источник финансирования, если суммы по ним
27 ptiz
 
16.09.11
16:07
Пусть карточка будет одинаковая. Без разницы.

Сотр 200 Карточка
Сотр 150 Карточка

Сотр ИсточникФинансирования1
Сотр ИсточникФинансирования2
Сотр ИсточникФинансирования3

Что делать в таком случае?
28 Andry_Boris
 
16.09.11
16:07
1 таблица: РаботникиОрганизации
Поля:
1.1) Сотрудник
1.2) Сумма
1.3) Карточка

2 таблица: ПараметрыОплаты
Поля:
2.1) Сотрудник
2.2) ИсточникФинансирования
29 Axel2009
 
16.09.11
16:08
чукча писатель
30 ptiz
 
16.09.11
16:10
(28) Итоговый результат приведи по примеру из (27)
31 jenny_tea
 
16.09.11
16:11
а можно еще задать глупый вопрос а зачем группировать по ссылке строки?
32 Andry_Boris
 
16.09.11
16:12
Сотр 200 Карточка  ИсточникФинансирования1
Сотр 150 Карточка  ИсточникФинансирования2
33 ptiz
 
16.09.11
16:13
А почему не
Сотр 200 Карточка  ИсточникФинансирования1
Сотр 150 Карточка  ИсточникФинансирования3

или
Сотр 200 Карточка  ИсточникФинансирования3
Сотр 150 Карточка  ИсточникФинансирования1

?
34 ptiz
 
16.09.11
16:13
Почему выбраны именно ИсточникФинансирования1 для строки
Сотр 200
и ИсточникФинансирования2
для строки
Сотр 150 ?
35 Andry_Boris
 
16.09.11
16:19
Вот ответ


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

СГРУППИРОВАТЬ ПО
   ВложенныйЗапрос.ИсточникФинансирования,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Сотрудник,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.НомерКарточки,
   ЗарплатаКВыплатеОрганизацийРаботникиОрганизации.Физлицо
ИТОГИ
   СУММА(Сумма)
ПО
   ИсточникФинансирования
36 Andry_Boris
 
16.09.11
16:19
вопрос снят...
37 Axel2009
 
16.09.11
16:31
пока суммы не совпадут..