Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Как соединить ? ПОМОГИТЕ! (число прочтений - 6215 )
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Как соединить ? ПОМОГИТЕ!
15. Ноября 2007 :: 08:21
Печать  
     |SELECT
     |      $ДокС.ВидДвижения as [ВидДвижения $Справочник.ДвиженияДенежныхСредств],  
     |      $ДокС.Субконто1 as [Контрагент $Неопределенный],
     |      $ДокС.Субконто2 as [Договор $Неопределенный],
     |      SUM($ДокС.Приход) as Оплата,
     |   ДокЗк.Всего as Всего
     |FROM
     |      $ДокументСтроки.Выписка as ДокС
     |INNER JOIN
     |      $Документ.Выписка as Док ON Док.IDDoc = ДокС.IDDoc
     |                                                AND $ДокС.ВидДвижения = :пВидДвижения
     |LEFT JOIN
     |      (
     |      SELECT
     |       $ДокЗ.Договор as [Договор1 $Справочник],
     |       SUM($ДокЗС.Всего) as [Всего $Число]
     |      FROM
     |            $ДокументСтроки.Заказ as ДокЗС
     |      INNER JOIN
     |            $Документ.Заказ as ДокЗ ON ДокЗС.IDDoc = ДокЗ.IDDoc
     |      GROUP BY $ДокЗ.Договор
     |      ) as ДокЗк ON ДокЗк.Договор1 = ДокС.Договор  
     |
     |INNER JOIN
     |      _1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc AND
     |                         Жур.Date_Time_IDDoc BETWEEN :НДата AND :КДата~ AND
     |                         Жур.Closed & 1 = 1
     |GROUP BY
     |   $ДокС.ВидДвижения,$ДокС.Субконто1,$ДокС.Субконто2
     |";

ошибка!!!    State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Договор1'.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #1 - 15. Ноября 2007 :: 08:25
Печать  
Типизацию имеет смысл ставить только в конечном селект-листе, т.е. только у тех полей которые получаются на клиента. В подзапросах ее ставить смысла нет.
MSSQL до фени метаданные 1С, для него [Договор1 $Справочник] это просто идентификатор колонки. В таком случае цепляй тогда также: as ДокЗк ON ДокЗк.[Договор1 $Справочник] = ДокС.Договор
  
Наверх
ICQ  
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #2 - 15. Ноября 2007 :: 08:28
Печать  
Я новичок.
А как тогда мне из внутреннего получить "Всего"?
  
Наверх
ICQ  
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #3 - 15. Ноября 2007 :: 08:31
Печать  
При замене на
"as ДокЗк ON ДокЗк.[Договор1 $Справочник] = ДокС.Договор "

Ошибка:
Invalid column name 'Договор'.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #4 - 15. Ноября 2007 :: 08:34
Печать  
semka49 писал(а) 15. Ноября 2007 :: 08:31:
При замене на
"as ДокЗк ON ДокЗк.[Договор1 $Справочник] = ДокС.Договор "

Ошибка:
Invalid column name 'Договор'.

Правильно, потому что у MSSQL нет такого поля 'Договор' у него есть что-то типа такого: sp6575. Мозг включай.
  
Наверх
ICQ  
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #5 - 15. Ноября 2007 :: 08:43
Печать  
какой кнопочкой включается мозг? на клавиатуре?? Улыбка
  
Наверх
ICQ  
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #6 - 15. Ноября 2007 :: 08:45
Печать  
Правильно ли будет написать:

     |LEFT JOIN
     |      (
     |      SELECT
     |       $ДокЗ.Договор as Договор1,
     |       SUM($ДокЗС.Всего) as Всего
     |      FROM
     |            $ДокументСтроки.Заказ as ДокЗС
     |      INNER JOIN
     |            $Документ.Заказ as ДокЗ ON ДокЗС.IDDoc = ДокЗ.IDDoc
     |      GROUP BY $ДокЗ.Договор
     |      ) as ДокЗк ON ДокЗк.Договор1 = ДокС.Договор
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #7 - 15. Ноября 2007 :: 08:51
Печать  
Нет. У тебя ж "ДокС" - это $ДокументСтроки.Выписка, а в той таблице нет колонки "Договор".
В документе "Заказ" и "Выписка" поля "Договор" одинакового определенного вида?
  
Наверх
 
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #8 - 15. Ноября 2007 :: 08:58
Печать  
Именно в строках докумнта "Выписка" есть Субконто2(тип Неопределенный)

$ДокС.Субконто2 as [Договор $Неопределенный]

Печаль
в том  и дело
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #9 - 15. Ноября 2007 :: 09:07
Печать  
Ну значит при соединении тебе надо преобразовать ДокЗк.Договор1 в "неопределённый" тип, т.к. $ДокС.Субконто2 у тебя неопределенного типа. И ещё раз: в твоей таблице "ДокС" нет колонки "Договор".
  
Наверх
 
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #10 - 15. Ноября 2007 :: 09:10
Печать  
Как преобразовать?

Я могу написать:
as ДокЗк ON ДокЗк.Договор1 = $ДокС.Субконто2 ?


И еще вопрос:
как вывести эту колонку "Всего" из внутреннего запроса?
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #11 - 15. Ноября 2007 :: 09:15
Печать  
В документации всё написано
  
Наверх
 
IP записан
 
semka49
Junior Member
**
Отсутствует


а что такое 1с?

Сообщений: 16
Местоположение: Москва
Зарегистрирован: 15. Ноября 2007
Пол: Женский
Re: Как соединить ? ПОМОГИТЕ!
Ответ #12 - 15. Ноября 2007 :: 09:16
Печать  
спасибо за документацию

как вывести "Всего" из внутреннего запроса?

Люююдииии...ау...вы меня покинули?? Плачущий

  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #13 - 15. Ноября 2007 :: 09:50
Печать  
А что, если написать в верхнем селекте "ДокЗк.Всего as ВсегоПоДокуЗС" не прокатывает? Что пишет?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как соединить ? ПОМОГИТЕ!
Ответ #14 - 15. Ноября 2007 :: 09:55
Печать  
Там же у тебя ещё и группировка... Значит пиши "SUM(ДокЗк.Всего) as ВсегоПоДокуЗк"
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать