powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select from ?
6 сообщений из 6, страница 1 из 1
Select from ?
    #36443928
AndrewT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, каким образом можна из табл.1 получить табл.2 с помощью SQL ?

табл.1
data saldo
01.01.2010 28.00
05.01.2010 10.00
06.01.2010 7.50
08.01.2010 14.00
10.01.2010 18.00

табл.2
data saldo
01.01.2010 28.00
02.01.2010 28.00
03.01.2010 28.00
04.01.2010 28.00
05.01.2010 10.00
06.01.2010 7.50
07.01.2010 7.50
08.01.2010 14.00
09.01.2010 14.00
10.01.2010 18.00

т.е. в принципе нужно проставить остаток предыдущего дня в следующем, при условии что этот следующий день - выходной (он отсутствует в табл.1).
Спасибо за внимание.
...
Рейтинг: 0 / 0
Select from ?
    #36444437
AndrewT,

ИМХО, никак. Для проведения требуемой Вами работы, сервер БД должен поддерживать язык программирования:циклы, перемещения по записям и т.д. (типа PL\SQL или T-SQL).
Если же Вы хотите работать именно в Фоксе, то тогда алгоритм примерно такой :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Select data,Saldo from Табл1 into cursor q1
select q1
scan
d1 = q1.data
s1 = q1.saldo
skip  1 
d2 = q1.data
skip - 1 
d1=d1+ 1 
do while d1<d2
   insert into Табл1 (data,saldo) values (d1,s1)
   d1=d1+ 1 
enddo

select q1
endscan
...
Рейтинг: 0 / 0
Select from ?
    #36444511
Станислав С...кийИМХО, никак. Можно. Но что-то очень лениво самому придумывать структуру таблицы и заполнять тестовыми данными...
...
Рейтинг: 0 / 0
Select from ?
    #36444552
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewTГоспода, каким образом можна из табл.1 получить табл.2 с помощью SQL ?

табл.1
data saldo
01.01.2010 28.00
05.01.2010 10.00
06.01.2010 7.50
08.01.2010 14.00
10.01.2010 18.00

табл.2
data saldo
01.01.2010 28.00
02.01.2010 28.00
03.01.2010 28.00
04.01.2010 28.00
05.01.2010 10.00
06.01.2010 7.50
07.01.2010 7.50
08.01.2010 14.00
09.01.2010 14.00
10.01.2010 18.00

т.е. в принципе нужно проставить остаток предыдущего дня в следующем, при условии что этот следующий день - выходной (он отсутствует в табл.1).
Спасибо за внимание.
Если у вас есть таблица "календарь" в которой есть записи для ВСЕХ дней диапазона запроса (с указанием праздник это или нет), то можно одним запросом.
С уважением, Алексей
...
Рейтинг: 0 / 0
Select from ?
    #36444707
AndrewT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K
Если у вас есть таблица "календарь" в которой есть записи для ВСЕХ дней диапазона запроса (с указанием праздник это или нет), то можно одним запросом.
С уважением, Алексей

Да, в общем случае такая таблица есть, там правда перечислены ВСЕ дни в году (без указаний выходных). А если бы была и с указаниями, как в таком случае? Можно пример?
Спасибо
...
Рейтинг: 0 / 0
Select from ?
    #36444752
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewTДа, в общем случае такая таблица есть, там правда перечислены ВСЕ дни в году (без указаний выходных). А если бы была и с указаниями, как в таком случае? Можно пример?
Спасибо
Ну, сам принцип описан здесь

Выбрать из дочерней таблицы записи с максимальной датой

В качестве главной таблицы выступает таблица-календарь, а в качестве дочерней указанная таблица. Только еще накладывается дополнительное условие, что дата дочерней таблицы не должна превышать дату главной.

В целом, идея в том, чтобы из "дочерней" таблицы взять запись с датой ближайшей равной или меньшей даты главной таблицы
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select from ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]