Показать сообщение отдельно
Старый 27.02.2013, 18:27   #13  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от Poleax Посмотреть сообщение
Приведите текст кода запроса.

Вы случаем не пытаетесь в запросе у LedgerJournalTable найти поле PaymPurpose_ZTR?
Она явно в LedgerJournalTrans.PaymPurpose_ZTR
X++:
    if (object_id('tempdb..#vendsettlement') IS NOT NULL) begin drop table #vendsettlement; end
    if (object_id('tempdb..#custsettlement') IS NOT NULL) begin drop table #custsettlement; end
    if (object_id('tempdb..#saldo') IS NOT NULL) begin    drop table #saldo; end
    if (object_id('tempdb..#saldoPr') IS NOT NULL) begin    drop table #saldoPr; end
    select transrecid, sum(settleamountcur) as settlecur, sum(settleamountmst) as settlemst, sum(exchadjustment) as exchadj
        into #vendsettlement
        from vendsettlement (nolock) where transdate < '2013.01.01' and ltrim(accountnum) like '%19265155'
            and dataareaid = 'zkz'
        group by transrecid

    select transrecid, sum(settleamountcur) as settlecur, sum(settleamountmst) as settlemst, sum(exchadjustment) as exchadj
        into #custsettlement
        from custsettlement (nolock) where transdate < '2013.01.01' and ltrim(accountnum) like '%19265155'
            and dataareaid = 'zkz'
        group by transrecid

    select 'Поставщик' as k,
        ltrim(LedgerAccount_ZTR) as LedgerAccount_ZTR,
        --isNull(CodeId_ZTR, '') as Dimension,
        (select CompanyGroup from Dimensions (nolock) where Dimensions.Num = custtrans.Dimension  and Dimensions.dataareaid = 'zkz' ) as Dimension,
        custtrans.RContractCode,
        custtrans.accountnum, substring(custtable.name,1, 100) as name,
        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)
        --<-
            when SubjectOfAgreement_ZTR != '' then SubjectOfAgreement_ZTR
            when (LedgerjournalTrans.BankCentralBankPurposeText is not null and LedgerjournalTrans.BankCentralBankPurposeText != '' and  Journaltype = 4)
               then LedgerjournalTrans.BankCentralBankPurposeText
               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,
        
        isnull(rContractTable.RCONTRACTNUMBER, '') as RCONTRACTNUMBER,
        sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0)) as mst,
        CustTrans.transdate,
        custtrans.DueDate,
      case
            when dateDiff(month, CustTrans.Duedate, '2013.01.01') = 0 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when dateDiff(month, CustTrans.Duedate, '2013.01.01') = 1 and day('2013.01.01') <= day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p1',
      case
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 1 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when ((dateDiff(month, CustTrans.Duedate,'2013.01.01') > 1) and (dateDiff(month, CustTrans.Duedate,'2013.01.01') < 3))
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 3 and day('2013.01.01') <= day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p2',
        case
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 3 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when ((dateDiff(month, CustTrans.Duedate,'2013.01.01') > 3) and (dateDiff(month, CustTrans.Duedate,'2013.01.01') < 36))
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 36 and day('2013.01.01') <= day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p3',
        case
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 36 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when ((dateDiff(month, CustTrans.Duedate,'2013.01.01') > 36))
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p4',
        sum(-amountcur)-sum(-isnull(settlecur,0)) as cur,
        custtrans.currencycode, ' ' as f,

        isnull(rContractTable.RContractAccount, '') as RContractAccount,
        isnull(RContractPartnerType,'') as RContractPartnerType,
        case
            when (LedgerjournalTrans.PaymentStatusUserId_ZTR != '')
                then LedgerjournalTrans.PaymentStatusUserId_ZTR
            when  custtrans.CreatedBy != '' then custtrans.CreatedBy
            else ''
        end as CreatedBy , custtrans.Dimension3_, custtrans.Dimension7_
        into #saldo
        from vendtrans custtrans (nolock)
        left join #vendsettlement (nolock) on custtrans.recid = #vendsettlement.transrecid
        inner join vendtable custtable (nolock) on custtable.accountnum = custtrans.accountnum and custtable.dataareaid = 'zkz'left join AddressCountryRegion country (nolock) on country.CountryRegionId = custtable.CountryRegionId and country.dataareaid = 'zkz'left join rContractTable (Nolock) on rContractTable.RContractPartnerType = '1' and
                      rContractTable.RContractCode        = custtrans.RContractCode        and
                      rContractTable.RContractAccount     = custtrans.RContractAccount --and RContractStatus = '1'
                      and rContractTable.dataareaid = 'zkz'
        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
            on custtrans.voucher = LedgerjournalTrans.voucher
            and (LedgerjournalTrans.postingprofile in
            (select vendledgeraccounts.postingprofile from vendledgeraccounts (nolock)
            where (accountCode = 2 or (accountcode = 1 and num = vendgroup))
                and vendledgeraccounts.dataareaid = 'zkz' and
            ltrim(sumaccount) = ltrim(LedgerAccount_ZTR)) or (offsetpostingprofile_ru in
            (select vendledgeraccounts.postingprofile from vendledgeraccounts (nolock)
            where (accountCode = 2 or (accountcode = 1 and num = vendgroup))
                and vendledgeraccounts.dataareaid = 'zkz' and
            ltrim(sumaccount) = ltrim(LedgerAccount_ZTR))))
        --left join RContractTypes (nolock) on RContractTypes.ContractCode = custtrans.RContractCode and RContractTypes.ContractPartnerType = 1
        where CustTrans.transdate < '2013.01.01' and (closed = '19000101' or closed >= '2013.01.01')
            and ltrim(LedgerAccount_ZTR) in ('6312100')
            and ltrim(custtrans.accountnum) like '%19265155' and custtrans.dataareaid = 'zkz'
            and LedgerAccount_ZTR not in(select accountnum from NotIncludeAccount_ZTR (nolock) where NotIncludeAccount_ZTR.dataareaid = 'zkz')

        group by LedgerAccount_ZTR, custtrans.RContractCode,
            custtrans.accountnum, custtable.name,
            country.name,
            substring(rContractTable.RContractSubject,1,1000),
            rContractTable.RCONTRACTNUMBER,
            CustTrans.transdate,
            custtrans.DueDate,custtrans.Dimension,
            custtrans.currencycode,rContractTable.RContractAccount,RContractPartnerType
            ,PaymentStatusUserId_ZTR, LedgerjournalTrans.BankCentralBankPurposeText ,custtrans.CreatedBy, --CodeId_ZTR,
            LedgerjournalTrans.txt, Journaltype, SubjectOfAgreement_ZTR ,custtrans.Txt,
            --Ledgerjournaltrans.PAYMPURPOSE_ZTR,
        --having sum(amountcur) != 0 or sum(amountmst) != 0
  custtrans.Dimension3_, custtrans.Dimension7_
    insert into #saldo
    select 'Клиент' as k ,/*' ' as g,*/ ltrim(LedgerAccount_ZTR) as LedgerAccount_ZTR,
        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)
        
          --<-
            when SubjectOfAgreement_ZTR != '' then SubjectOfAgreement_ZTR
            /*when (LedgerjournalTrans.BankCentralBankPurposeText is not null and LedgerjournalTrans.BankCentralBankPurposeText != '' and  Journaltype = 7)
                then LedgerjournalTrans.BankCentralBankPurposeText*/
            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,
        isnull(rContractTable.RCONTRACTNUMBER, '') as RCONTRACTNUMBER,
        sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0)) as mst,
        Custtrans.transdate,
        custtrans.DueDate,
      case
            when dateDiff(month, CustTrans.Duedate, '2013.01.01') = 0 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when dateDiff(month, CustTrans.Duedate, '2013.01.01') = 1 and day('2013.01.01') <= day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p1',
      case
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 1 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when ((dateDiff(month, CustTrans.Duedate,'2013.01.01') > 1) and (dateDiff(month, CustTrans.Duedate,'2013.01.01') < 3))
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 3 and day('2013.01.01') <= day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p2',
        case
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 3 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when ((dateDiff(month, CustTrans.Duedate,'2013.01.01') > 3) and (dateDiff(month, CustTrans.Duedate,'2013.01.01') < 36))
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 36 and day('2013.01.01') <= day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p3',
        case
            when dateDiff(month, CustTrans.Duedate,'2013.01.01') = 36 and day('2013.01.01') > day(CustTrans.Duedate)
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            when ((dateDiff(month, CustTrans.Duedate,'2013.01.01') > 36))
            then sum(-amountmst)-sum(-isnull(settlemst,0))+sum(-isnull(exchadj,0))
            else 0
        end as 'p4',

        sum(-amountcur)-sum(-isnull(settlecur,0)) as cur,
        custtrans.currencycode, '' as f,
        isnull(rContractTable.RContractAccount,'') as RContractAccount,
        isnull(RContractPartnerType,'') as RContractPartnerType,
        case
            when (LedgerjournalTrans.PaymentStatusUserId_ZTR != '')  then LedgerjournalTrans.PaymentStatusUserId_ZTR
            when  custtrans.CreatedBy != '' then custtrans.CreatedBy
            else ''
        end as CreatedBy
 , custtrans.Dimension3_, custtrans.Dimension7_
        from custtrans  (nolock)
        left join #custsettlement on custtrans.recid = #custsettlement.transrecid
        inner join custtable (nolock) on custtable.accountnum = custtrans.accountnum and custtable.dataareaid = 'zkz'left join AddressCountryRegion country (nolock) on country.CountryRegionId = custtable.CountryRegionId and country.dataareaid = 'zkz'left join rContractTable (Nolock) on rContractTable.RContractPartnerType = '0' and
                      rContractTable.RContractCode        = custtrans.RContractCode        and
                      rContractTable.RContractAccount     = custtrans.RContractAccount --and RContractStatus = '1'
                      and rContractTable.dataareaid = 'zkz'
        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))))
        left join LedgerjournalTable on LedgerjournalTrans.journalnum = LedgerjournalTable.journalnum and posted = 1
            and Journaltype in(0, 7, 45) and LedgerjournalTable.dataareaid = 'zkz'
        left join RContractTypes (nolock) on RContractTypes.ContractCode = custtrans.RContractCode and RContractTypes.ContractPartnerType = 0
            and RContractTypes.dataareaid = 'zkz'
        where Custtrans.transdate < '2013.01.01' and (closed = '19000101' or closed >= '2013.01.01')
                    and ltrim(LedgerAccount_ZTR) in ('6312100')
                    and ltrim(custtrans.accountnum) like '%19265155'
                    and LedgerAccount_ZTR not in(select accountnum from NotIncludeAccount_ZTR (nolock) where NotIncludeAccount_ZTR.dataareaid = 'zkz')
                    and custtrans.dataareaid = 'zkz'

        group by custtrans.accountnum, custtrans.currencycode, custtrans.RContractCode, custtrans.Dimension,
            rContractTable.RContractCode,
            substring(rContractTable.RContractSubject,1,1000),
            LedgerAccount_ZTR, Custtrans.transdate,RContractPartnerType, rContractTable.RCONTRACTNUMBER,
            custtrans.DueDate,
            custtable.name, country.name,rContractTable.RContractAccount,RContractPartnerType,
            PaymentStatusUserId_ZTR, LedgerjournalTrans.BankCentralBankPurposeText, custtrans.CreatedBy, CodeId_ZTR,
            LedgerjournalTrans.txt, SubjectOfAgreement_ZTR, custtrans.Txt, custtrans.DocId_ZTR,
             substring(Ledgerjournaltrans.PAYMPURPOSE_ZTR,1,500),
            Ledgerjournaltable.JOURNALTYPE,
           
             --, Journaltype
        --having sum(amountcur) != 0 or sum(amountmst) != 0
  custtrans.Dimension3_, custtrans.Dimension7_
    select k,
        case when (mst < 0 or cur < 0) then 'Д' else 'К' end as pr,
        case when (mst < 0 or cur < 0) then BalSheetDt_ZTR
            when (mst > 0 or cur > 0) then BalSheetKr_ZTR
        end as bal,
        ltrim(LedgerAccount_ZTR) as LedgerAccount_ZTR,
        #saldo.Dimension,
        #saldo.accountnum,
        #saldo.name,
        n,
        name1,
        #saldo.RContractSubject,
        #saldo.RCONTRACTNUMBER,
        case when (mst < 0) then -mst else mst end as mst,
        transdate,
        #saldo.DueDate,
        case when (p1 < 0) then -p1 else p1 end as p1,
        case when (p2 < 0) then -p2 else p2 end as p2,
        case when (p3 < 0) then -p3 else p3 end as p3,
        case when (p4 < 0) then -p4 else p4 end as p4,
        case when (cur < 0) then -cur else cur end as cur,
        #saldo.currencycode,
        #saldo.CreatedBy
 , #saldo.Dimension3_, #saldo.Dimension7_
    into #saldoPr
    from #saldo
    inner join LedgerTable (nolock) on ltrim(LedgerTable.accountNum) = ltrim(LedgerAccount_ZTR) and LedgerTable.dataareaid = 'zkz'
    left join rContractTable (Nolock) on rContractTable.RContractPartnerType = #saldo.RContractPartnerType and
                      rContractTable.RContractCode        = #saldo.RContractCode        and
                      rContractTable.RContractAccount     = #saldo.RContractAccount --and RContractStatus = '1'
                      and rContractTable.dataareaid = 'zkz'
    where #saldo.CreatedBy like '%'
    order by #saldo.accountnum,#saldo.currencycode,ltrim(LedgerAccount_ZTR),transdate
o
Я добавил свой код в условие case в 3 селекте и последнем (комментарии --->3780 26.02.2013)
Но в первом случае он ругается, что не знает такого поля, хотя выбираю его из выпадающего списка, я так понимаю, что если решить проблему с первым case-ом, тогда будет отображаться то, что нужно.

Последний раз редактировалось user_ax; 27.02.2013 в 18:29.