Показать сообщение отдельно
Старый 07.04.2010, 11:10   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1777 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Raduga Посмотреть сообщение
я, честно говоря, не представляю, как можно и на SQL составить запрос, где на LedgerJournalTrans.BudgetDimId будет наложено такое условие.
если хранить условие (именно хранить, вводить можете как вам угодно) не в виде произвольной строки, а в виде пары тип rangeType/rangeValue, то запрос можно написать следующим образом

X++:
select LedgerJournalTrans
exists join BankAccountTable
where
    BankAccountTable.AccountId == LedgerJournalTrans.OffsetAccount &&
    (
        (BankAccountTable.rangeType == rangeType::Great && LedgerJournalTrans.BudgetDimId > BankAccountTable.rangeValue) ||
        (BankAccountTable.rangeType == rangeType::Less && LedgerJournalTrans.BudgetDimId < BankAccountTable.rangeValue) ||
        (BankAccountTable.rangeType == rangeType::Equal && LedgerJournalTrans.BudgetDimId == BankAccountTable.rangeValue) ||
        ...
    )
А вас точно не устраивает вариант разбиения одного запроса на два вложенных?