Переключение на Главную Страницу Страницы: [1] 2 3 ... 5 ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите с 1sqlite (число прочтений - 15773 )
1st
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 07. Апреля 2011
Помогите с 1sqlite
19. Апреля 2011 :: 08:28
Печать  
Суть дела в следующем:
Необходимо получить документы: Реализации и Поступления за указанный период.
Нужно чтобы контрагенты попадали в одну колонку, допустим, "Конт".

ТекстЗапроса = "SELECT
     |Журнал.date [ДатаДок: Дата],
     |Журнал.iddoc [Док: Документ.ПоступлениеТМЦ],
     |Контрагент [Конт: Справочник.Контрагенты]
     |From Журнал
     |inner join Документ_ПоступлениеТМЦ as ПостТМЦ
     |ON (ПостТМЦ.IDDOC = Журнал.IDDOC)
     |inner join Документ_Реализация as Реал
     |ON (Реал.IDDOC = Журнал.IDDOC)
     |WHERE date between '20110101' and '20110331'
     |and Журнал.closed=1";

Пишет:  ambiguous column name: Контрагент

Приходится делать либо 2 колонки, "Реал.Контрагент [Конт1: Справочник.Контрагенты]" и "ПостТМЦ.Контрагент [Конт2: Справочник.Контрагенты]"
или вообще 2 запроса.

Подскажите плиз, наверняка оч. просто же делается.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #1 - 19. Апреля 2011 :: 09:47
Печать  
сделай два запроса и объедини через union
или
возвращай значение через case
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите с 1sqlite
Ответ #2 - 19. Апреля 2011 :: 10:04
Печать  
Код
Выбрать все
ТекстЗапроса = "SELECT
     |Журнал.date [ДатаДок: Дата],
     |Журнал.iddocdef||Журнал.iddoc [Док :Документ],
     |coalesce(Реал.Контрагент,ПостТМЦ
.Контрагент)  [Конт  :Справочник.Контрагенты]
     |From [Журнал] Журнал
     |left join [Документ.ПоступлениеТМЦ] as ПостТМЦ ON ПостТМЦ.IDDOC = Журнал.IDDOC
     |left join [Документ.Реализация] as Реал ON Реал.IDDOC = Журнал.IDDOC
     |WHERE
     |  (Журнал.iddocdef= :ВидДокумента.ПоступлениеТМЦ or
     |   Журнал.iddocdef= :ВидДокумента.Реализация)
     |  and Журнал.date between :НачДата and :КонДата
     |  and Журнал.closed>0"; 

  
Наверх
 
IP записан
 
1st
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 27
Зарегистрирован: 07. Апреля 2011
Re: Помогите с 1sqlite
Ответ #3 - 19. Апреля 2011 :: 10:47
Печать  
Спасибо, все работает)
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #4 - 19. Мая 2011 :: 23:21
Печать  
пробовала применить этот метод, а у меня к сожалению не работает Печаль(
coalesce($ОС_Списание.МОЛОбщ,$ОС_Перемещение.МОЛОбщ) [МОЛ $Справочник.МОЛ]

различные варианты, все равно не получается
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #5 - 19. Мая 2011 :: 23:30
Печать  
Настенок писал(а) 19. Мая 2011 :: 23:21:
пробовала применить этот метод, а у меня к сожалению не работает Печаль(

Маловато информации. давай сюда запрос.
Хотя сразу бросаются в глаза непонятные баксы внутри coalesce
  
Наверх
 
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #6 - 19. Мая 2011 :: 23:35
Печать  
|SELECT
           |      Журнал.IDDOCDEF  Документ_Вид
           |      , Журнал.IDDOC  [Документ $Документ]
           |      , Журнал.DOCNO Документ_ном
           
           |      , NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') Документ_дата
           
           |      ,coalesce(ДокСписание.$ОбщийРеквизит.МОЛОбщ,ДокПеремещ.$ОбщийРеквизит.МОЛОбщ) [МОЛ $Справочник.МОЛ]
                       
           |FROM
           |      _1SJOURN  Журнал
           |LEFT JOIN
           |      $Документ.ОС_Списание as ДокСписание on ДокСписание.iddoc=Журнал.iddoc
           |LEFT JOIN
           |      $Документ.ОС_Перемещение as ДокПеремещ on ДокПеремещ.iddoc=Журнал.iddoc
           |Where
           |      Журнал.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ and
           
           |      Журнал.IDDocDef = $ВидДокумента.ОС_Перемещение OR
           |      Журнал.IDDocDef = $ВидДокумента.ОС_Списание
           
           |";

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #7 - 19. Мая 2011 :: 23:53
Печать  
А как проявляется "не работает"?
Настенок писал(а) 19. Мая 2011 :: 23:35:
|      Журнал.IDDOCDEF  Документ_вид

И условия на IDDOCDEF надо бы в скобки взять..
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #8 - 20. Мая 2011 :: 00:02
Печать  
{D:\НАСТЯ\OTCHETY\ИНВЕНТЕРНАЯ КНИГА УЧЕТА\ПОДОККРОМЕПЕРЕОЦЕНКИ.ERT(46)}: Meta name parser error: объект не найден "$ОбщийРеквизит.МОЛОбщ"

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #9 - 20. Мая 2011 :: 00:09
Печать  
Это должен быть общий реквизит со снятым флажком "Отбор". Если флажок установлен, то реквизит хранится в журнале и соединения с документами не нужны.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #10 - 20. Мая 2011 :: 00:18
Печать  
вопрос глупый, но как проверить общий ли это реквизит???
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #11 - 20. Мая 2011 :: 00:19
Печать  
В дереве конфигурации ветка Документы\Общие реквизиты  Круглые глаза
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #12 - 20. Мая 2011 :: 00:20
Печать  
буду знать Улыбка
его там нет Печаль
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с 1sqlite
Ответ #13 - 20. Мая 2011 :: 00:24
Печать  
Тогда
Код
Выбрать все
|	,coalesce($ДокСписание.МОЛОбщ,$ДокПеремещ.МОЛОбщ) [МОЛ $Справочник.МОЛ] 


Надеюсь, в самих документах этот реквизит есть?  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Настенок
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 43
Зарегистрирован: 14. Февраля 2011
Re: Помогите с 1sqlite
Ответ #14 - 20. Мая 2011 :: 00:29
Печать  
в документах есть эти реквизиты..
теперь такая ошибка:
Для типизации поля "Документ", не найдено дополнительное типизирующее поле.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5
ОтправитьПечать