|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Есть период DS(01.04.11) - DF(30.04.11) к примеру.(Период будет браться с формы) необходимо вывести все даты месяца скажем поле DDM: 01.04.11 02.04.11 ... 30.04.11 Пробовала через do while,do case ничего не вышло понимаю что нужно взять начальное и нарастить +1 в переменную а потом сделать replace искомого поля но почему то с синтаксисом проблемы. Помогите пожалуйста ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2011, 19:44 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 06:35 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Просто прибавляй к дате количество дней. Примерно так: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 06:39 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Dima T Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 07:54 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Спасибо всем огромное за ответы. сегодня попробую все!) а то эта мысль вчера уснуть не давала( итересен вариант перевода сначала в стринг , наращивания ,а потом обратно в дату....я такого не думала) при моем неправильном коде писало ошибку "Численное переполнение" но я не знаю это ошибка фокса или SQL-сервера ,потому как работаю на IT-ERP ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 08:06 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Анна Позняковаитересен вариант перевода сначала в стринг , наращивания ,а потом обратно в дату....я такого не думала) Это изврат, не надо так делать без острой на то необходимости. Анна Позняковапри моем неправильном коде писало ошибку "Численное переполнение" но я не знаю это ошибка фокса или SQL-сервера ,потому как работаю на IT-ERP советую поразбираться с обработкой ошибок, чтобы четко понимать где происходит ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 08:42 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Dima TАнна Позняковаитересен вариант перевода сначала в стринг , наращивания ,а потом обратно в дату....я такого не думала) Это изврат, не надо так делать без острой на то необходимости. Согласен, сорри, как-то не подумал про возможность элементарного DATE()+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 08:56 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Анна Познякова, Имхо, так нагляднее Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 10:35 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Если кому интересен результирующий код, пишу: select ddm,ds,df FROM ... into cursor _Temp readwrite&& в DDM хранятся даты или лишь первая дата диапазона m.ddm=ds m.dff=df select _temp GO bottom DO WHILE ddm<df IF ddm<df APPEND BLANK replace ddm WITH m.ddm+1 replace df WITH m.dff ENDIF m.ddm=ds m.dff=df ENDDO Вроде так) несмотря на многочисленные ответы, пришлось раз 5 переписать чтоб все сработало) Но всегда приятно знать, что движешься в том направлении что нужно. ЕЩЕ раз всем СПАСИБО!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 20:11 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Жуть. 1. Go bottom совершенно бесполелен в данном случае. Append и так всегда добавляет в конец. Впрочем, как insert sql. 2. Цикл Do while заменяем на такой: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2011, 23:31 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
бесполезен? там даты упарядочены по возрастанию.да дата по сути может быть и одна, а может быть до 29 числа...и зачем мне делать APPEND BLANK 29 раз , если нужет только один? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 21:21 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Анна Позняковабесполезен?Да.там Где?даты упарядочены по возрастанию.И что это меняет?да дата по сути может быть и одна, а может быть до 29 числа...и зачем мне делать APPEND BLANK 29 раз , если нужет только один?А может Вы опишите задачу полностью, а не выдержки из нее? И как надо определять нужность? Вы что, дырки в датах заполняете? Проимер исходных данных можете привести с описанием результата, который из них надо получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2011, 21:28 |
|
Вывод всех дней месяца по периоду.
|
|||
---|---|---|---|
#18+
Анна Позняковабесполезен? там даты упарядочены по возрастанию.да дата по сути может быть и одна, а может быть до 29 числа...и зачем мне делать APPEND BLANK 29 раз , если нужет только один? Ну, смотрим на то, что Вы написали Код: plaintext 1. 2. 3. 4. 5. 6.
Зачем собственно? Это может быть оправдано только в том случае, если выполняются следующие условия: 1. Записи в выборке _Temp упорядочены по возрастанию даты. Т.е. в команде Select-SQL должна присутствовать опция ORDER BY. Об этом не сказано ни слова и из примера не следует 2. Даты в выборке _Temp идут без разрывов. Т.е. не может быть пропущена какая-либо дата. Об этом опять же не сказано ни слова и из примера не следует Если Вы предполагали, что могут быть разрывы в датах, то Ваш код эти разрывы никак не заполняет. Вы вообще в начале цикла попадаете на случайную запись, поскольку результат выборки никак не упорядочен. Нет Order By. Кроме того, не вполне ясно, почему Ваш код не "зацикливается"? Ведь переменной ds у Вас не существует и Вы обращаетесь к ней как к полю таблицы, открытой в текущей рабочей области. А в текущей рабочей области у Вас курсор _Temp у которого это поле после команды APPEND BLANK всегда пустое. Вот и получается, что поле ddm - это пустая дата плюс 1 день. Как следствие - бесконечный цикл (условие ddm<df будет выполняться всегда после первого же APPEN BLANK), ну, если только поле df также не пустое... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2011, 16:43 |
|
|
start [/forum/topic.php?fid=41&msg=37229863&tid=1584403]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
57ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 175ms |
0 / 0 |