27.02.2013, 18:46 | #21 |
Участник
|
Если расскоментировать мой код в 3 селекте, ошибка простая
X++: Msg 207, Level 16, State 1, Line 31
Invalid column name 'PAYMPURPOSE_ZTR'. Куски кода: X++: substring(' ',1,140) as n, isnull(country.name, '') as name1, case ---> 3780 26.02.2013 -- when (Journaltype = 10) --then substring(LedgerjournalTrans.PAYMPURPOSE_ZTR,1,1000) --<- X++: isNull(CodeId_ZTR, '') as Dimension, --(select CompanyGroup from Dimensions (nolock) where Dimensions.Num = custtrans.Dimension) as Dimension, custtrans.RContractCode, custtrans.accountnum, substring(custtable.name,1, 100), (select FinalDelvCustName_ZTR from SalesTable where SalesTable.SalesId = custtrans.DocId_ZTR) as n, isnull(country.name, '') as name1, case --->3780 26.02.2013 when (Journaltype = 10) then substring(LedgerjournalTrans.PAYMPURPOSE_ZTR,1,500) --<- |
|
27.02.2013, 19:01 | #22 |
Модератор
|
Цитата:
Код: left join (select voucher, POSTINGPROFILE, offsetpostingprofile_ru, PaymentStatusUserId_ZTR, LedgerjournalTrans.BankCentralBankPurposeText,LedgerjournalTrans.txt, Journaltype from LedgerjournalTrans (nolock) inner join LedgerjournalTable on LedgerjournalTrans.journalnum = LedgerjournalTable.journalnum and posted = 1 and Journaltype in(0, 4, 45) and LedgerjournalTrans.dataareaid = 'zkz' and LedgerjournalTrans.dataareaid = 'zkz' ) as LedgerjournalTrans там как раз и не хватает поля PAYMPURPOSE_ZTR Добавьте его во вложенный запрос . На пример: Код: left join (select voucher, POSTINGPROFILE, offsetpostingprofile_ru, PaymentStatusUserId_ZTR, PAYMPURPOSE_ZTR, LedgerjournalTrans.BankCentralBankPurposeText,LedgerjournalTrans.txt, Journaltype from LedgerjournalTrans (nolock) inner join LedgerjournalTable on LedgerjournalTrans.journalnum = LedgerjournalTable.journalnum and posted = 1 and Journaltype in(0, 4, 45) and LedgerjournalTrans.dataareaid = 'zkz' and LedgerjournalTrans.dataareaid = 'zkz' ) as LedgerjournalTrans В 141 строке приведенного кода, нормально. Там просто выборка из таблицы JOIN на 208 строке Код: left join LedgerjournalTrans (nolock) on custtrans.voucher = LedgerjournalTrans.voucher and LedgerjournalTrans.dataareaid = 'zkz' and (LedgerjournalTrans.postingprofile in (select custledgeraccounts.postingprofile from custledgeraccounts (nolock) where (accountCode = 2 or (accountcode = 1 and num = custgroup)) and custledgeraccounts.dataareaid = 'zkz' and ltrim(sumaccount) = ltrim(LedgerAccount_ZTR)) or (offsetpostingprofile_ru in (select custledgeraccounts.postingprofile from custledgeraccounts (nolock) where (accountCode = 2 or (accountcode = 1 and num = custgroup)) and custledgeraccounts.dataareaid = 'zkz' and ltrim(sumaccount) = ltrim(LedgerAccount_ZTR))))
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. Последний раз редактировалось Poleax; 27.02.2013 в 19:08. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2). |
27.02.2013, 19:05 | #23 |
Модератор
|
Цитата:
Но у Вас там влож. запрос УРЕЗАННЫМ списком полей. При выполнении и вываливается с ошибкой. нюансы
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
27.02.2013, 19:06 | #24 |
Участник
|
Poleax
Благодарю, не заметил. Вставил поле в подзапрос - ругаться перестало, однако построение отчёта идёт не по тому полю, которое мне нужно. Думал ограничиться добавлением условия в создание запроса, а получается, ещё нужно где-то. |
|
27.02.2013, 19:07 | #25 |
Участник
|
Так вот почему вываливалось неполный перечень полей, эво как, благодарю за разъяснение
|
|
27.02.2013, 19:11 | #26 |
Участник
|
Разобрался почему не работало. Нужно было ещё в джойнах там где указывается выборка значений and Journaltype and Journaltype in(0, 7, 45) добавить нужный мне номер журнала.
Poleax, спасибо вам большое! |
|
27.02.2013, 19:18 | #27 |
Модератор
|
Да, не за что.
На будущие если создаете подзапросы и JOINите их, то имена (Alias) присваивайте отличные от существующих таблиц. Чтоб самому потом не запутаться. К пример для LedgerjournalTrans можно написать: as LJTrans В БД таблицы LJTrans нет и ошибка будет яснее понять. В области SELECT можно оперировать полями через алиасе LJTrans.PAYMPURPOSE_ZTR
__________________
This posting is provided "AS IS" with no warranties, and confers no rights. |
|
|
За это сообщение автора поблагодарили: user_ax (1). |
28.02.2013, 11:03 | #28 |
Участник
|
Цитата:
Сообщение от Poleax
Да, не за что.
На будущие если создаете подзапросы и JOINите их, то имена (Alias) присваивайте отличные от существующих таблиц. Чтоб самому потом не запутаться. К пример для LedgerjournalTrans можно написать: as LJTrans В БД таблицы LJTrans нет и ошибка будет яснее понять. В области SELECT можно оперировать полями через алиасе LJTrans.PAYMPURPOSE_ZTR |
|