|
Как отнять дату от даты в запросе | ☑ | ||
---|---|---|---|---|
0
Oleg102
28.01.14
✎
07:32
|
Всем привет. Люди подскажите как отнять две даты друг от друга в запросе. Как только не пробовал. ПЛЮСУЕТ даты, а как отнять никак не сооброжу.
Сейчас пока так: ВЫБОР КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) <> 0 ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) ИНАЧЕ 0 КОНЕЦ Еще в колонках где мне нужно вытащить дату вставляются какие то не понятные цифры помогите их убрать. http://pixs.ru/showimage/1jpg_2535020_10641260.jpg ВЕСЬ ЗАПРОС: ТекстЗапроса = "ВЫБРАТЬ | Подбор.Код КАК Код, | Подбор.Артикул КАК Артикул, | Подбор.ЭтоГруппа КАК ЭтоГруппа, | Подбор.ПометкаУдаления КАК ПометкаУдаления, | Подбор.Услуга КАК Услуга, | Подбор.Номенклатура КАК Номенклатура, | Подбор.Родитель КАК Родитель, | Подбор.КоличествоОстатокОрганизации КАК КоличествоОстатокОрганизации, | Подбор.Цена КАК Цена, | Подбор.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | Подбор.Номенклатура.Представление КАК ПредставлениеНоменклатура, | Подбор.ЕдиницаИзмерения.НаименованиеПолное КАК ПредставлениеЕдиницаИзмерения, | ЛОЖЬ КАК ПереходитьВверх, | МАКСИМУМ(ПоступлениеТоваровУслуг.Дата) КАК ДатаПоступления, | ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности) КАК ДатаПроизводства, | ВЫБОР | КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) <> 0 | ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) | ИНАЧЕ 0 | КОНЕЦ КАК СрокГодности |ИЗ | (ВЫБРАТЬ | СправочникНоменклатура.Код КАК Код, | СправочникНоменклатура.Артикул КАК Артикул, | СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа, | СправочникНоменклатура.ПометкаУдаления КАК ПометкаУдаления, | СправочникНоменклатура.Услуга КАК Услуга, | СправочникНоменклатура.Ссылка КАК Номенклатура, | СправочникНоменклатура.Родитель КАК Родитель, | СУММА(Остатки.КоличествоОстатокОрганизации) КАК КоличествоОстатокОрганизации, | МАКСИМУМ(ЦеныСрезПоследних.Цена) КАК Цена, | СправочникНоменклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения | ИЗ | Справочник.Номенклатура КАК СправочникНоменклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаРегистраСведений, " + мТекстЗапросаОтборНоменклатурыПоРодителю + " ТипЦен = &ТипЦен) КАК ЦеныСрезПоследних | ПО (ЦеныСрезПоследних.Номенклатура = СправочникНоменклатура.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | СУММА(ВЫБОР | КОГДА ХозрасчетныйОстатки.КоличествоОстатокДт ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ХозрасчетныйОстатки.КоличествоОстатокДт | КОНЕЦ - ВЫБОР | КОГДА ХозрасчетныйОстатки.КоличествоОстатокКт ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ХозрасчетныйОстатки.КоличествоОстатокКт | КОНЕЦ) КАК КоличествоОстатокОрганизации | ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата," + ФильтрПоСчету + ", &ВидыСубконто, " + Условие + ФильтрПоСубконто + ") КАК ХозрасчетныйОстатки | | СГРУППИРОВАТЬ ПО | ХозрасчетныйОстатки.Субконто1) КАК Остатки | ПО (Остатки.Номенклатура = СправочникНоменклатура.Ссылка) | |ГДЕ |" + ?(ИерархияЗапроса, "СправочникНоменклатура.Родитель = &Родитель", "СправочникНоменклатура.ЭтоГруппа = Ложь") + " |" + ?(ФильтрЗапроса, " И ((Остатки.КоличествоОстатокОрганизации > 0 И ЦеныСрезПоследних.Цена <> 0)" + ?(ИерархияЗапроса, " ИЛИ СправочникНоменклатура.ЭтоГруппа = Истина)", ")"), "") + " | | | СГРУППИРОВАТЬ ПО | СправочникНоменклатура.Родитель, | СправочникНоменклатура.Ссылка, | СправочникНоменклатура.Код, | СправочникНоменклатура.Артикул, | СправочникНоменклатура.ЭтоГруппа, | СправочникНоменклатура.ПометкаУдаления, | СправочникНоменклатура.Услуга, | СправочникНоменклатура.БазоваяЕдиницаИзмерения) КАК Подбор | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг | ПО Подбор.Номенклатура = ПоступлениеТоваровУслуг.Товары.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ПоступлениеТоваровУслугТовары.ДатаПроизводства КАК ДатаПроизводства, | ПоступлениеТоваровУслугТовары.СрокГодности КАК СрокГодности, | ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура, | ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка | ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары) КАК ВложенныйЗапрос | ПО Подбор.Номенклатура = ВложенныйЗапрос.Номенклатура | |СГРУППИРОВАТЬ ПО | Подбор.Код, | Подбор.Артикул, | Подбор.ЭтоГруппа, | Подбор.ПометкаУдаления, | Подбор.Услуга, | Подбор.Номенклатура, | Подбор.Родитель, | Подбор.КоличествоОстатокОрганизации, | Подбор.Цена, | Подбор.ЕдиницаИзмерения, | Подбор.Номенклатура.Представление, | Подбор.ЕдиницаИзмерения.НаименованиеПолное, | ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), | ВЫБОР | КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) <> 0 | ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) | ИНАЧЕ 0 | КОНЕЦ | |УПОРЯДОЧИТЬ ПО | Подбор.ЭтоГруппа УБЫВ, | Подбор.Номенклатура.Наименование"; Возврат ТекстЗапроса; |
|||
1
Oleg102
28.01.14
✎
07:44
|
Когда просто вытаскиваю Срок годности без подсчета 2 месяца. то выводит цифру 2 и эти цифры непонятные пропадают. Все нормально. Начинаю сложение они появляются.
|
|||
2
kosts
28.01.14
✎
07:50
|
|
|||
3
kosts
28.01.14
✎
07:52
|
(2) Не читать. Ноль было правильно. Подумал, что у тебя проблема, что даты в числа преобразуются...
|
|||
4
Oleg102
28.01.14
✎
07:55
|
(2) Тоже самое никаких изменений
|
|||
5
kosts
28.01.14
✎
07:57
|
(0) Что бы не было минуса, от большего отнимают меньшее. В первом классе так делают...
Большие цифры, возможно, где-то что-то не заполнено, например, ВложенныйЗапрос.ДатаПроизводства. Алгоритм сработал, так как ты его написал. Добавь больше условий. |
|||
6
George Wheels
28.01.14
✎
08:01
|
ВЫБОР КОГДА ВложенныйЗапрос.ДатаПроизводства <> Дата(1,1,1)
ТОГДА ... ИНАЧЕ 0 КОНЕЦ |
|||
7
Oleg102
28.01.14
✎
08:02
|
(5) я понимаю что от чего надо отнять. Вопрос возник как это сделать в запросе правильно. Буду пробовать больше условий. Хотя пытался уже.
|
|||
8
George Wheels
28.01.14
✎
08:04
|
Эти непонятные цифры - количество дней.
|
|||
9
Oleg102
28.01.14
✎
08:06
|
(8) Я понимаю что это количество дней считает. Просто какого фига они считаются и туда вообще вставляются ))
|
|||
10
George Wheels
28.01.14
✎
08:21
|
(9) Вот с этого фига
КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) <> 0 |
|||
11
Любопытная
28.01.14
✎
08:30
|
ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности) вот эта штука не равна 0, если ВложенныйЗапрос.ДатаПроизводства - пустая дата, а СрокГодности - не пустая. Ибо пустая дата для скуля (а у вас вероятно скуль) это '1753-01-01 00:00:00.000'
Вот и получаете количество дней от начала использования гогорианского календаря |
|||
12
ИС-2
naïve
28.01.14
✎
08:56
|
Какой тип у ДатаПроизводства и СрокГодности?
По поводу не понятных чисел мне кажется, что идет где-то задвоение либо некорректные данные |
|||
13
Ненавижу 1С
гуру
28.01.14
✎
09:10
|
каких только епланов на работу не берут, слов нет
|
|||
14
Oleg102
28.01.14
✎
09:32
|
(13) За словами следи козлина
|
|||
15
Oleg102
28.01.14
✎
09:32
|
(13) Умный сука
|
|||
16
AdrianBerk
28.01.14
✎
09:40
|
Цензура! =)) уважайте себя и других пожалуйста
|
|||
17
Oleg102
28.01.14
✎
09:44
|
(16) Да я уважаю Вас всех и благодарю за помощь. Просто нельзя все знать, я учусь я не говорю что я гуру в 1С. Мне сейчас объяснили я буду знать и понимать в следующий раз как, что и почему. Мне объяснять некому в 1С, стараюсь изучить сам. Да и если бы было у кого так спросить не создавал бы эту ветку форума. А этот что ты умничает. Наверное такой умный и помочь объяснить для него сложно. Извиняюсь за цензуру и оскорбления.
|
|||
18
fmrlex
28.01.14
✎
09:51
|
(13) Песок в вагине чтоле?
|
|||
19
hhhh
28.01.14
✎
10:33
|
ВЫБОР
КОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) <> 0 ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) ИНАЧЕ 0 КОНЕЦ разве не одно и то же РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.ДатаПроизводства, МЕСЯЦ, ВложенныйЗапрос.СрокГодности), &ТекущаяДата, ДЕНЬ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |