powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос
25 сообщений из 30, страница 1 из 2
Хитрый запрос
    #32201973
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите pls
нужно сделать следующий запрос:
Товар - Дата 1ой поставки - Дата 2ой поставки - ... - Общее кол-во поставок
1 10,03,03 20,03,03 50
2 15,03,03 16,03,03 35
...
Сложность в том, что у разных товаров разные даты и разное их кол-во.

Исх табла для простоты
Товар - Дата - Кол-во

подкиньте идею с какой стороны подойти.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32201989
Фотография dannis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со стороны сводных таблиц.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202036
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Временными таблицами
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202042
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин ...
я просил намеки на алгоритм, а не два раза по два слова :(
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202051
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя количество столбцов чем-либо ограничено?
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202062
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если бы можно было в исходной таблице добавить поле... Тогда:

Исх табла для простоты
Товар - Дата - Кол-во - Номер

И делаем перекрестный запрос, взяв за заголовки стробцов поле Номер.

А заполнять его придется программно:

Код: plaintext
1.
2.
3.
4.
5.
6.
Для каждого товара
    i =  0 
    По всем датам по порядку
        i = i +  1 
        Вставить i
    Конец по
Конец для
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202070
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочешь получить ответ-приведи пример таблицы с исходными данными и в каком виде надо получить результат.
А так остается только только гадать Например у одного товара только две даты поставки или может быть больше(меньше) и.т.д
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202073
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, а куда ты денешься от ограничения на количество столцов? Для таблицы, запроса и перекрестного запроса?
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202082
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Лох - отвечаю по порядку:

Для таблицы
Я добавляю только одно поле.

запроса
См. ниже, у меня всего один запрос, и он перекрестный.

и перекрестного запроса?
Так же, как всегда. Что ж теперь, вообще перекрестными запросами не пользоваться?

Или я что-то упустил, тогда ткни меня носом.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202095
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Саныч
Сорь, невнимательно прочитал
Пронумеровать записи можно и без добавления поля. По крайней мере сквозную нумерацию (по всем товарам) с помощью SQL запроса сделать можно, хоть и извратно. Скорее всего можно и сквозную в пределах одного товара.
Тогда действительно можно перекрестный запрос сделать. Но только для небольшого (сколько точно - не помню) количества столбцов/продаж.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202100
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сорю (или сОрю). Сквозная нумерация не поможет - ведь надо, чтобы в один столбец попали данные с одинаковым номером.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202108
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я же говорю - скорее всего получится пронумеровать последовательно в пределах каждого товара. Т.е. товар1 - от 1 до n1, товар2 - от 1 до n2 и т.д.
А дальше уже перекрестный запрос. Строки - товар, столбцы - порядковый номер продажи, ячейки - собсно даты продаж. Еще общее количество надо бы впихнуть куда-нибудь.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202114
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> Ну я же говорю - скорее всего получится пронумеровать последовательно в пределах каждого товара.

Если не секрет, то как? (Кроме как рекордсетом.)

> Еще общее количество надо бы впихнуть куда-нибудь.

Можно поставить в ячейки Format(Дата, ...) & " " & Cstr(Кол-во).
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202131
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вау!
отошел покушать, а тут уже заруба вовсю

идея с нумерованием мне понравилась, правда пока не знаю
сможется ли выполнить.
щас булочку дожую, подумаю и оглашу
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202156
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> правда пока не знаю сможется ли выполнить.

В крайнем случае можно скопировать данные во временную таблицу, в которой есть это поле.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202162
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только следует помнить, что ограничения на количество столбцов в кростабе есть, 255.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202165
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Hummer:

За 255 спасибо. Но это для всех, кто пользуется CrossTab'ами.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202169
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с ограничением все ОК
делается для периода месяц, так что max=30
а реально вообще 3-5.
а как в запросе пронумеровать? В смысле на лету, а не во врем табл
чего-то я торможу.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202178
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> а как в запросе пронумеровать?

А вот я Лоху этот вопрос задал (15:01). Наверно, он тоже отошел покушать.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202184
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я же говорю - скорее всего получится пронумеровать последовательно в пределах каждого товара.
Если не секрет, то как? (Кроме как рекордсетом.)

Если комбинация Id_tovar + date уникальна
то можно так
Код: plaintext
1.
2.
select t1.id_tovar,t1.date count(*) as Num from table1 as t1 inner join table1 as t2
                                  on t1.id_tovar=t2.id_tovar and t1.date>=t2.date
group by t1.id_tovar,t1.date
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202188
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Если комбинация Id_tovar + date уникальна

увы заставить продавать один товар не более чем один раз
в день не в моих силах.

2 ЛП:
>Ну я же говорю - скорее всего получится пронумеровать последовательно в >пределах каждого товара. Т.е. товар1 - от 1 до n1, товар2 - от 1 до n2 и т.д.

поясни как
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202226
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
увы заставить продавать один товар не более чем один раз
в день не в моих силах.

Если очень хочется ,но нельзя-то можно.
А если серьезно -можно хранить в поле date дату с точностью до секунды
а в итоговых данных обрезать до нужной длины.
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202228
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорь щас запарка
Вечером попробую ченить написать
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202746
sasha_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ЛП:
если запарка закончилась, то не будет ли любезен
многоуважаемый джин поделиться мыслями о нумерации строк в запросе.
Код: plaintext
:)
...
Рейтинг: 0 / 0
Хитрый запрос
    #32202793
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так тебе ж ответили уже
Товарисч VIG тебе запрос привел. Я то же самое дома написал.
Единственное что мешает - неуникальность id_tovar + date. Так от этого избавиться можно. Вместо даты используй (CDbl(дата) + 1/первичный ключ). Вот тебе и суррогатное время
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Хитрый запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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