27.02.2013, 12:33 | #1 |
Участник
|
Условия в запросе sql в аксапте
Поставлена задача модифицировать запрос, который генерирует отчёт Свод дебиторской/кредиторской задолженности.
Нужно, если выборка идёт из журнала накладных(LedgerjournalTable.JournalType = 10), вместо поля RcontractAccount выводить поле LedgerJournalTrans.PaymPurpose_ZTR. Нашёл класс, который генерирует этот отчёт. В создании отчёта(createdQuery), где есть большой запрос, который, я так понимаю, и генерирует сам отчёт, нашёл блок с условиями и добавил туда свои условия. Проблема в том, что если моё условие добавить в конец блока, метод возвращает false и отчёт не создаётся(будет throw), а если условие поставить посредине блока - пишет. что неверное названия поля PaymPurpose_ZTR. Но! Такое поле есть, проверено. Подскажите пожалуйста, в какую сторону копать. Вроде такая простая задача и столько стопоров...первый раз просто столкнулся с sql -запросами в аксапте подобного вида.. Условие: X++: case when SubjectOfAgreement_ZTR != '' then SubjectOfAgreement_ZTR when (LedgerjournalTrans.BankCentralBankPurposeText is not null and LedgerjournalTrans.BankCentralBankPurposeText != '' and Journaltype = 4) then LedgerjournalTrans.BankCentralBankPurposeText --->3780 26.02.2013 when (LedgerJournalTable.Journaltype = 10 and LedgerjournalTrans.PaymPurpose_ZTR is not null) then LedgerjournalTrans.PaymPurpose_ZTR --<- when (LedgerjournalTrans.Txt is not null and LedgerjournalTrans.Txt != '' and (Journaltype = 0 or Journaltype = 45)) then custtrans.Txt when (substring(rContractTable.RContractSubject,1,1000) is not null and substring(rContractTable.RContractSubject,1,1000) != '') then substring(rContractTable.RContractSubject,1,1000) else '' end as RContractSubject, " + @" X++: case when SubjectOfAgreement_ZTR != '' then SubjectOfAgreement_ZTR --->3780 26.02.2013 when (LedgerJournalTable.Journaltype = 10 and LedgerjournalTrans.PaymPurpose_ZTR is not null) then LedgerjournalTrans.PaymPurpose_ZTR --<- when (LedgerjournalTrans.Txt is not null and LedgerjournalTrans.Txt != '' /*and (Journaltype = 0 or Journaltype = 45)*/) then custtrans.Txt when (substring(rContractTable.RContractSubject,1,1000) is not null and substring(rContractTable.RContractSubject,1,1000) != '') then substring(rContractTable.RContractSubject,1,1000) else '' end as RContractSubject, Буду благодарен за любые ответы. |
|