Создание базы данных ACCESS 2003, страница 3

SELECT DETAILREPAIR.rto_showdate, DETAILS.detail_name, DETAILS.detail_code, DETAILREPAIR.rto_begindate, DETAILREPAIR.rto_rkonsdate

FROM DETAILS INNER JOIN DETAILREPAIR ON DETAILS.detail_id=DETAILREPAIR.detail_id

WHERE (((DETAILREPAIR.rto_showdate)=[Forms]![ФормаЗапросов]![Запрос4Дата])

AND (([DETAILREPAIR].[rto_rkonsdate]-[DETAILREPAIR].[rto_begindate])=(

               SELECT MAX(DETAILREPAIR.rto_rkonsdate-DETAILREPAIR.rto_begindate)

               FROM DETAILREPAIR

               WHERE (((DETAILREPAIR.rto_showdate)=[Forms]![ФормаЗапросов]![Запрос4Дата]))

)));

---------------------------------------------------------

5)  Найти долю дешевых изделий (меньше заданного, ввод) от общего числа изделий

---------------------------------------------------------

SELECT (Count(DETAILS_PRICE.price)*100)/(select COUNT(*) from DETAILS_PRICE) AS [Доля изделий]

FROM DETAILS_PRICE

WHERE (((DETAILS_PRICE.price)<=Forms!ФормаЗапросов!Запрос5Значение));

---------------------------------------------------------

6)  Найти все блоки, дата отказа которых указана в заданных пределах (ввод интервала), для определенных дат предъявления (выбор даты) изделий и наименований организаций (выбор).

---------------------------------------------------------

SELECT DETAILS.detail_name, DETAILS.detail_code, DETAILREPAIR.rto_brokendate, DETAILREPAIR.rto_showdate, DETAILREPAIR.rto_exporgname

FROM DETAILS INNER JOIN DETAILREPAIR ON DETAILS.detail_id=DETAILREPAIR.detail_id

WHERE (DETAILREPAIR.rto_brokendate Between Forms!ФормаЗапросов!Запрос6Интервал1

    And Forms!ФормаЗапросов!Запрос6Интервал2)

AND (DETAILREPAIR.rto_showdate=Forms!ФормаЗапросов!Запрос6ДатаПредъявления)

AND (DETAILREPAIR.rto_exporgname like '*'+Forms!ФормаЗапросов!Запрос6Наименование+'*');

---------------------------------------------------------

7)  Для каждого отказа определить все способы восстановления.

---------------------------------------------------------

SELECT DETAILREPAIR.rto_brokenreason2, DETAILREPAIR.rto_howrepair

FROM DETAILREPAIR

ORDER BY DETAILREPAIR.rto_brokenreason2, DETAILREPAIR.rto_howrepair;

---------------------------------------------------------

8)  Найти долю изделий с заданной датой выпуска от общего числа изделий.

---------------------------------------------------------

SELECT (Count([DETAILREPAIR].[rto_begindate])*100)/(select COUNT(*) from DETAILREPAIR) AS [Доля изделий]

FROM DETAILREPAIR

WHERE (((DETAILREPAIR.rto_begindate)=Forms!ФормаЗапросов!Запрос8ДатаВыпуска));

---------------------------------------------------------

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

---------------------------------------------------------

SELECT DETAILS.detail_name, DETAILS.detail_code, DETAILREPAIR.rto_begindate, DETAILREPAIR.rto_exporgname, DETAILS_PRICE.price

FROM (DETAILS INNER JOIN DETAILREPAIR ON DETAILS.detail_id=DETAILREPAIR.detail_id) INNER JOIN DETAILS_PRICE ON DETAILS.detail_id=DETAILS_PRICE.detail_id

WHERE (((DETAILREPAIR.rto_begindate)=[Forms]![ФормаЗапросов]![Запрос9ДатаВыпуска2]) 

AND  DETAILS_PRICE.price >= (

                                                    SELECT AVG(DETAILS_PRICE.price)

                                        FROM (DETAILS INNER JOIN DETAILREPAIR ON DETAILS.detail_id = DETAILREPAIR.detail_id)

INNER JOIN DETAILS_PRICE ON DETAILS.detail_id = DETAILS_PRICE.detail_id

WHERE ((DETAILREPAIR.rto_exporgname) = [Forms]![ФормаЗапросов]![Запрос9Наименование2]))

)

ORDER BY DETAILS.detail_name;

---------------------------------------------------------

10) Найти все изделия с самой большой разницей между датой отказа и датой восстановления, для заданной даты выпуска (ввод даты) для любой организации.