Выборка с макросом

annaLolo
Дата: 13.11.2009 19:36:42
Всем привет!
Никто не подскажет как сделать такой макрос:
Дана простенькая таблица товар-цена.
Нужен на выходе отчет в котором показываются отдельно два самых дорогих товара, отдельно один - третий по дороговизне, отдельно два - четвертый и пятый по дороговизне и отдельно два самых дешевых.
Объясните на пальцах, плз!!! - никогда не работала в аксессе, нужно просто отвязаться от задания.
отакота
Дата: 13.11.2009 20:43:09
объясняю на пальцах.

отчет - это форма представления данных, которая показывает то, что находится в его источнике.
т.е. - чтобы в отчете показать какие-то данные, вы должны задать этот источник отчета.

источником данных отчета может быть или таблица или запрос (на выборку данных)

таблица - это хранилище данных, в котором данные хранятся в структурированном виде по строкам (записям) и столбцам (полям).

запрос - это инструкция, написанная на специальном языке (SQL), которая позволяет выбрать из таблиц требуемые вам данные - и вернуть их также в табличном виде.

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

например,
выбрать два самых дорогих товара можно таким запросом:
SELECT TOP 2 товар, цена FROM таблица ORDER BY цена DESC

выбрать третий по дороговизне товар можно таким запросом:
SELECT TOP 1 товар, цена FROM 
(SELECT TOP 3 товар, цена FROM таблица ORDER BY цена DESC)
ORDER BY цена ASC

и т.д. - таким образом вы получите 4 запроса для выборки данных, требуемых в задании

однако, в качестве источника одного отчета можно указать только один запрос. поэтому, в зависимости от того как именно должны данные выглядеть в отчете, вы можете либо соединить эти четыре запроса в один (при помощи UNION) - и сделать этот итоговый запрос источником записей отчета, либо, например, сделать для каждого запроса отдельный отчет - а потом соединить эти четыре отчета, встроив их в качестве суботчетов в один общий внешний отчет.
annaLolo
Дата: 13.11.2009 21:24:42
Огромное спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!