|
При использовании итогов, меняются детальные записи в запросе | ☑ | ||
---|---|---|---|---|
0
Web00001
05.03.15
✎
15:29
|
Доброго времени суток. Имеем вот такой вот запрос.
ВЫБРАТЬ ДатыПоБилетам.ВидОперации КАК ВидОперации, ДатыПоБилетам.ДатаКалендаря КАК ДатаОперации, ДатыПоБилетам.НомерБилета КАК НомерБилета, ЛМБ_СуммыУдержанийОбороты.КредитПриход КАК Кредит, ВЫБОР КОГДА ДатыПоБилетам.СхемаКредитования = &СхемаСтандарт ТОГДА ВЫБОР КОГДА РАЗНОСТЬДАТ(ДатыПоБилетам.ДатаЗалога, ДатыПоБилетам.ДатаКалендаря, ДЕНЬ) < 1 ТОГДА 0 КОГДА РАЗНОСТЬДАТ(ДатыПоБилетам.ДатаЗалога, ДатыПоБилетам.ДатаКалендаря, ДЕНЬ) <= 30 ТОГДА ВЫРАЗИТЬ(0.006 * ЕСТЬNULL(ДатыПоБилетам.СуммаСсуды, 0) КАК ЧИСЛО(10, 2)) ИНАЧЕ ВЫБОР КОГДА НАЧАЛОПЕРИОДА(ДатыПоБилетам.ДатаК, ДЕНЬ) < ДатыПоБилетам.ДатаКалендаря ТОГДА ВЫРАЗИТЬ(0.0002 * ЕСТЬNULL(ДатыПоБилетам.СсудаК, 0) КАК ЧИСЛО(10, 2)) ИНАЧЕ ВЫРАЗИТЬ(0.0002 * ЕСТЬNULL(ДатыПоБилетам.СуммаСсуды, 0) КАК ЧИСЛО(10, 2)) КОНЕЦ КОНЕЦ ИНАЧЕ ВЫБОР КОГДА РАЗНОСТЬДАТ(ДатыПоБилетам.ДатаЗалога, ДатыПоБилетам.ДатаКалендаря, ДЕНЬ) < 1 ТОГДА 0 КОГДА РАЗНОСТЬДАТ(ДатыПоБилетам.ДатаЗалога, ДатыПоБилетам.ДатаКалендаря, ДЕНЬ) <= 7 ТОГДА ВЫРАЗИТЬ(0.006 * ЕСТЬNULL(ДатыПоБилетам.СуммаСсуды, 0) КАК ЧИСЛО(10, 2)) ИНАЧЕ ВЫБОР КОГДА НАЧАЛОПЕРИОДА(ДатыПоБилетам.ДатаК, ДЕНЬ) < ДатыПоБилетам.ДатаКалендаря ТОГДА ВЫРАЗИТЬ(0.0002 * ЕСТЬNULL(ДатыПоБилетам.СсудаК, 0) КАК ЧИСЛО(10, 2)) ИНАЧЕ ВЫРАЗИТЬ(0.0002 * ЕСТЬNULL(ДатыПоБилетам.СуммаСсуды, 0) КАК ЧИСЛО(10, 2)) КОНЕЦ КОНЕЦ КОНЕЦ КАК Кредит2, ЛМБ_СуммыУдержанийОбороты.ПросрочкаПриход КАК Пени, ВЫБОР КОГДА ДатыПоБилетам.СхемаКредитования = &СхемаСтандарт ТОГДА ВЫБОР КОГДА РАЗНОСТЬДАТ(ДатыПоБилетам.ДатаЗалога, ДатыПоБилетам.ДатаКалендаря, ДЕНЬ) <= 30 ТОГДА 0 ИНАЧЕ ВЫБОР КОГДА НАЧАЛОПЕРИОДА(ДатыПоБилетам.ДатаК, ДЕНЬ) < ДатыПоБилетам.ДатаКалендаря ТОГДА ВЫРАЗИТЬ(0.0058 * ЕСТЬNULL(ДатыПоБилетам.СсудаК, 0) КАК ЧИСЛО(10, 2)) ИНАЧЕ ВЫРАЗИТЬ(0.0058 * ЕСТЬNULL(ДатыПоБилетам.СуммаСсуды, 0) КАК ЧИСЛО(10, 2)) КОНЕЦ КОНЕЦ ИНАЧЕ ВЫБОР КОГДА РАЗНОСТЬДАТ(ДатыПоБилетам.ДатаЗалога, ДатыПоБилетам.ДатаКалендаря, ДЕНЬ) <= 7 ТОГДА 0 ИНАЧЕ ВЫБОР КОГДА НАЧАЛОПЕРИОДА(ДатыПоБилетам.ДатаК, ДЕНЬ) < ДатыПоБилетам.ДатаКалендаря ТОГДА ВЫРАЗИТЬ(0.0058 * ЕСТЬNULL(ДатыПоБилетам.СсудаК, 0) КАК ЧИСЛО(10, 2)) ИНАЧЕ ВЫРАЗИТЬ(0.0058 * ЕСТЬNULL(ДатыПоБилетам.СуммаСсуды, 0) КАК ЧИСЛО(10, 2)) КОНЕЦ КОНЕЦ КОНЕЦ КАК Пени2, ДатыПоБилетам.Дата КАК Дата, ДатыПоБилетам.ЗалоговыйБилет КАК ЗалоговыйБилет ИЗ (ВЫБРАТЬ ЛМБ_СведенияЗалоговогоБилета.ВидОперации КАК ВидОперации, РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря, ЛМБ_СведенияЗалоговогоБилета.ЗалоговыйБилет.Код КАК НомерБилета, НАЧАЛОПЕРИОДА(ЛМБ_СведенияЗалоговогоБилета.Период, ДЕНЬ) КАК Дата, ЛМБ_СведенияЗалоговогоБилета.ЗалоговыйБилет КАК ЗалоговыйБилет, ЕСТЬNULL(ДатыВыкупа.Дата, &ДатаКон) КАК ДатаВыкупа, ЛМБ_СведенияЗалоговогоБилета.ДатаЗалога КАК ДатаЗалога, ЛМБ_СведенияЗалоговогоБилета.СхемаКредитования КАК СхемаКредитования, ЛМБ_СведенияЗалоговогоБилета.СуммаСсуды КАК СуммаСсуды, Корректировка.Дата КАК ДатаК, Корректировка.СсудаК КАК СсудаК ИЗ РегистрСведений.ЛМБ_СведенияЗалоговогоБилета КАК ЛМБ_СведенияЗалоговогоБилета ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЛМБ_СведенияЗалоговогоБилета.Регистратор.Дата КАК Дата, ЛМБ_СведенияЗалоговогоБилета.ЗалоговыйБилет КАК ЗалоговыйБилет ИЗ РегистрСведений.ЛМБ_СведенияЗалоговогоБилета КАК ЛМБ_СведенияЗалоговогоБилета ГДЕ ЛМБ_СведенияЗалоговогоБилета.Период МЕЖДУ &ДатаНач И &ДатаКон И НЕ(ЛМБ_СведенияЗалоговогоБилета.ВидОперации = &ВидОперации2 ИЛИ ЛМБ_СведенияЗалоговогоБилета.ВидОперации = &ВидОперации3)) КАК ДатыВыкупа ПО ЛМБ_СведенияЗалоговогоБилета.ЗалоговыйБилет = ДатыВыкупа.ЗалоговыйБилет ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Частичные.ЗалоговыйБилет КАК ЗалоговыйБилет, Частичные.Дата КАК Дата, Частичные.Период КАК Период, Частичные.СуммаСсуды КАК СсудаК ИЗ (ВЫБРАТЬ ЛМБ_СведенияЗалоговогоБилета.Регистратор.Дата КАК Дата, ЛМБ_СведенияЗалоговогоБилета.ЗалоговыйБилет КАК ЗалоговыйБилет, ЛМБ_СведенияЗалоговогоБилета.Период КАК Период, ЛМБ_СведенияЗалоговогоБилета.СуммаСсуды КАК СуммаСсуды, ЛМБ_СведенияЗалоговогоБилета.СуммаОценки КАК СуммаОценки ИЗ РегистрСведений.ЛМБ_СведенияЗалоговогоБилета КАК ЛМБ_СведенияЗалоговогоБилета ГДЕ ЛМБ_СведенияЗалоговогоБилета.Период МЕЖДУ &ДатаНач И &ДатаКон И ЛМБ_СведенияЗалоговогоБилета.ВидОперации = &ВидОперации3) КАК Частичные) КАК Корректировка ПО ЛМБ_СведенияЗалоговогоБилета.ЗалоговыйБилет = Корректировка.ЗалоговыйБилет, РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ ЛМБ_СведенияЗалоговогоБилета.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаКон И ЛМБ_СведенияЗалоговогоБилета.ДатаЗалога МЕЖДУ &ДатаНач И &ДатаКон И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря >= ЛМБ_СведенияЗалоговогоБилета.ДатаЗалога И РегламентированныйПроизводственныйКалендарь.ДатаКалендаря <= ЕСТЬNULL(ДатыВыкупа.Дата, &ДатаКон)) КАК ДатыПоБилетам ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЛМБ_СуммыУдержаний.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ЛМБ_СуммыУдержанийОбороты ПО (ДатыПоБилетам.ДатаКалендаря = НАЧАЛОПЕРИОДА(ЛМБ_СуммыУдержанийОбороты.Период, ДЕНЬ)) И ДатыПоБилетам.ЗалоговыйБилет = ЛМБ_СуммыУдержанийОбороты.ЗалоговыйБилет ИТОГИ СУММА(Кредит), СУММА(Кредит2), СУММА(Пени), СУММА(Пени2), КОЛИЧЕСТВО(ЗалоговыйБилет) ПО ВидОперации, Дата, НомерБилета, ДатаОперации Если убрать итоги то поля Кредит2 и Пени2 считаются как задумано, но с итогами для расчета по какой то причине другие данные. Подскажите, что это может быть и что с этим делать? |
|||
1
vicof
05.03.15
✎
15:33
|
что значит "как задумано"?
|
|||
2
Web00001
05.03.15
✎
15:42
|
(1) если найти строку с текстом "КАК Кредит2" то можно увидеть "как задумано".
|
|||
3
vicof
05.03.15
✎
15:46
|
(1) Я про критерии правильности. И чем данные "как задумано" отличаются от "других данных".
|
|||
4
alle68
05.03.15
✎
15:51
|
(0) Это подлая ложь или глупое заявление: "При использовании итогов, меняются детальные записи в запросе."
|
|||
5
Web00001
05.03.15
✎
15:59
|
(3)Происходит то что написано, данные из регистра умножаются на числовую константу если добавить итоги данные из регистра продолжают умножаться, но уже почему то другие.
(4)Вот тут не могу не согласиться, но получается какая то хня, хотя не должна. |
|||
6
vicof
05.03.15
✎
16:02
|
ТиИ не пробовал?
|
|||
7
Web00001
05.03.15
✎
16:07
|
(6)Уже пробую, но, что то подсказывает, что не в этом дело
|
|||
8
DirecTwiX
05.03.15
✎
16:13
|
(0) Временные таблицы религия пользовать не позволяет?
Запрос - жесть. Там интерпретатор ногу сломит, пока поймёт, какие тебе итоги нужны) Попробуй сначала в ВТ запихать, а потом итоги прикрутить? |
|||
9
Web00001
05.03.15
✎
16:17
|
(8)Что не так с запросом? Для верности без итогов были выгружены результаты в ТЗ, потом эта ТЗ загружена в ВТ и добавлены итоги, результаты были один в один как и без ВТ
|
|||
10
alle68
05.03.15
✎
16:20
|
(9) Нормальный запрос. ВТ и ТиС здесь беде не помогут.
Покажи лучше, где и как ты видишь несоответствие. |
|||
11
DirecTwiX
05.03.15
✎
16:30
|
(9) Нечитабельный он.
Может, Пени2 и Кредит2 нужно считать не по детальным записям, а по группировкам? Или брать Максимум(), а не Сумма() для Пени2 и Кредит2. |
|||
12
Web00001
05.03.15
✎
16:42
|
(10)До итогов http://i.imgur.com/TscGwPs.png и после http://i.imgur.com/qCpPlmR.png
(11)ВТ видимо должны добавить читаемости? Так получилось что мне нужны итоги и в итогах именно сумма. Пенни2 и Кредит2 должны рассчитываться везде и по ним нужны итоги, о чем ты говоришь я не понял. |
|||
13
Ёпрст
05.03.15
✎
16:55
|
(0) ДатыПоБилетам.ДатаК может быть null, ты на это нигде не воткнул проверку
|
|||
14
alle68
05.03.15
✎
16:56
|
(12) Ну, ты приколист. Что ты разные виды операций нам явил?
|
|||
15
Ёпрст
05.03.15
✎
16:57
|
(14) глазастый.
|
|||
16
floody
05.03.15
✎
17:17
|
Неужели кто-то пилит ломбард?
|
|||
17
Aloex
05.03.15
✎
17:19
|
(0) Это самый короткий вариант?
|
|||
18
Web00001
05.03.15
✎
17:28
|
(14)Действительно... это я затупил. Устал видимо или еще что то, не знаю как отмазываться.
|
|||
19
Web00001
05.03.15
✎
17:29
|
(14)Спасибо.
|
|||
20
ShoGUN
05.03.15
✎
17:34
|
(18) При использовании итогов порядок меняется :) У тебя же нет УПОРЯДОЧИТЬ ПО...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |