Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в ACCESS / 12 сообщений из 12, страница 1 из 1
06.11.2002, 14:03
    #32065388
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Имеется таблица
Дек Ост_начало Расх Ост_конец
2.........10...........-5.........5
3..........5............-8........-3
4..........-3..........-5.........-8
5..........-8...........-2.......-10

Нужно получить таблицу
Дек Ост_начало Расх Ост_конец Необходимо поставить
2.........10...........-5.........5................-3
3..........5............-8........-3..............-5
4..........-3..........-5.........-8..............-2

Таким образом нужно получить по сути столбец "Необходимо поставить", его суть заключается в том, что поставка осуществляется за декаду (то есть ранее декады, в которой имеется отрицательный остаток на конец периода). Также важно, чтобы сумма доп.поставки шла не накопительным характером (в отличие от остатка), а только в размере необходимой дополнительной поставки к конкретной декаде.
Если у кого есть мысли пишите:)
...
Рейтинг: 0 / 0
06.11.2002, 15:19
    #32065444
denche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
попробуй вот так

select t1.Дек,
t1.Ост_начало,
t1.Расх,
t1.Ост_конец ,
iif(t2.Ост_конец < 0,iif(t1.Ост_конец <0, t1.Ост_конец,0) - t2.Ост_конец ,0 ) as [Необходимо поставить]
from таблица as t1
inner join таблица as t2
on t1.Дек = (t2.Дек+1)
...
Рейтинг: 0 / 0
06.11.2002, 15:37
    #32065459
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Denche, а что ты имел в виду под следующим
"from таблица as t1
inner join таблица as t2 "?
что означает "таблица"?
...
Рейтинг: 0 / 0
06.11.2002, 15:38
    #32065461
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Ты писал "Имеется таблица"

Вот таблица и имеется в виду. Он хотел сказать линкуем таблицу к самой себе - распространенный прием между прочим!
...
Рейтинг: 0 / 0
06.11.2002, 15:46
    #32065466
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
спасибо mahoune,
я уже додумался
...
Рейтинг: 0 / 0
06.11.2002, 15:53
    #32065473
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Не пойму пока в чем ошибка, Denche, но у меня получился следующий результат (неверный соответственно).
Дек Ост_начало Расх Ост_конец Необходимо поставить
3.........5...........-8..........-3................0
4.........-3............-5........-8..............-5
5..........-8..........-2.........-10..............-2
...
Рейтинг: 0 / 0
06.11.2002, 15:56
    #32065476
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Все понял,
нужно было вместо (t2.Дек+1) поставить (t2.Дек-1)
...
Рейтинг: 0 / 0
06.11.2002, 16:24
    #32065497
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Еще вопрос,
в новой таблице получается сдвиг декад на одну назад, а мне нужно, чтобы последняя декада присутствовала с результатом 0 (так как я затем объединяю несколько таблиц в одну). Как это сделать, кто-нибудь знает?
...
Рейтинг: 0 / 0
06.11.2002, 16:28
    #32065499
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
используй -1
:)

Итоговый запрос давай!
...
Рейтинг: 0 / 0
06.11.2002, 17:16
    #32065544
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Не понял, у меня запрос:
select t1.Дек,
t1.Ост_начало,
t1.Расх,
t1.Ост_конец ,
iif(t2.Ост_конец < 0,iif(t1.Ост_конец <0, t1.Ост_конец,0) - t2.Ост_конец ,0 ) as [Необходимо поставить]
from таблица as t1
inner join таблица as t2
on t1.Дек = (t2.Дек-1)

В результате него получается таблица:
Дек Ост_начало Расх Ост_конец Необходимо поставить
2.........10...........-5.........5................-3
3..........5............-8........-3..............-5
4..........-3..........-5.........-8..............-2

А я хочу получить:
Дек Ост_начало Расх Ост_конец Необходимо поставить
2.........10...........-5.........5................-3
3..........5............-8........-3..............-5
4..........-3..........-5.........-8..............-2
5..........-8...........-2.......-10..............0
...
Рейтинг: 0 / 0
06.11.2002, 17:21
    #32065549
denche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
возьми вместо inner join left join
...
Рейтинг: 0 / 0
06.11.2002, 17:47
    #32065568
Sanchez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос в ACCESS
Огромное спасибо
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос в ACCESS / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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