Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2016, 22:26   #1
Svyatoslav359
Пользователь
 
Регистрация: 05.06.2015
Сообщений: 24
По умолчанию SQL-запрос

Помогите с запросом, нужно:
"Вывести список клиентов с указанием суммарного числа фото в их заказах и суммарной стоимости данных фото, отсортировать список по суммарной стоимости;"
Структура базы:

Код:
USE FotoMas
CREATE TABLE Client(
Kod_klienta INT PRIMARY KEY,
FIO VARCHAR(40) NOT NULL,
Phone INT NOT NULL)
 
CREATE TABLE Zakaz(
Nomer_zakaza INT PRIMARY KEY,
Kod_klienta INT FOREIGN KEY REFERENCES Client,
Name_Kataloga VARCHAR(30) NOT NULL,
Data_post DATETIME,
Data_vipol DATETIME
 
)
 
CREATE TABLE FormatPhoto(
Kod_formata INT PRIMARY KEY,
Razmer VARCHAR(5) CHECK(Razmer IN ('10x15', '6x9', '13x18','20x30','24x30')),
Tip_bumagi VARCHAR(12) CHECK(Tip_bumagi IN ('Офсетная', 'Матовая', 'Картон','Дизайнерская','Глянцевая')),
Chena INT CHECK ( Chena > 0));
 
 
CREATE TABLE Photos(
Nomer_Photo INT PRIMARY KEY,
Nomer_zakaza INT FOREIGN KEY REFERENCES Zakaz,
Nazvanie_faila VARCHAR(15) NOT NULL,
Kod_formata INT FOREIGN KEY REFERENCES FormatPhoto,
Kol_vo INT CHECK ( Kol_vo > 0));
 
CREATE TABLE Materials(
Kod_materiala INT PRIMARY KEY,
Tip NCHAR(20) NOT NULL,
Proizvoditel VARCHAR(30) NOT NULL,
Nazvanie VARCHAR(30) NOT NULL,
Charakteristika VARCHAR(60) NOT NULL,
Chena INT CHECK ( Chena > 0));
 
 
CREATE TABLE Rashod(
Kod_materiala  INT FOREIGN KEY REFERENCES Materials,
Nomer_zakaza  INT FOREIGN KEY REFERENCES Zakaz,
Rashod VARCHAR(50)  CHECK ( Rashod > 0));
Svyatoslav359 вне форума Ответить с цитированием
Старый 15.06.2016, 09:10   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
select sum(sostav.count),
       sum(sostav.count * rashod.cena),
       clients.<информация о клиенте для вывода(нужные нам поля!!)>
from clients, --информация о клиентах
     zakazs, -- заказы клиентов
     sostav, -- состав разового заказа
     rashod  -- информация РАЗОВОГО изготовления фото

where clients.id =zakazs.id_client -- заказы соответствующие клиенту
  and zakazs.id =sostav.id_zakaz  --фото соотетствующие заказу
  and sostav.id_rashod =rashod.id --единичные расходы соответствующие фото

group by clients.<ТА ЖЕ информация о клиенте для вывода> 
order by 
     2 -- номер поля вывода по которму сортируем
     DESC --в порядке УБЫВАНИЯ
за более подробными объяснениями Мартин Грубер Понимание SQL
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 15.06.2016 в 09:13.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос в sql 2005 - SQL Server a.n.o.n.i.m SQL, базы данных 8 31.03.2016 17:01
Написать скрипт, который выгрузит данные из файла в формате JSON, создаст SQL таблицу и написать SQL запрос Mangum Фриланс 3 11.03.2016 05:21
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15