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

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

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2009, 19:18   #1
student223
 
Регистрация: 14.01.2009
Сообщений: 3
По умолчанию Помогите написать sql запросы

помогите кто хорошо разбирается в sql написать запросы
student223 вне форума Ответить с цитированием
Старый 14.01.2009, 19:23   #2
student223
 
Регистрация: 14.01.2009
Сообщений: 3
По умолчанию

помогите написать запросы на:
Компьютерная фирма
Схема БД состоит из четырех таблиц:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
Таблица Product представляет производителя (maker), номер модели (model) и тип ('PC' - ПК, 'Laptop' - ПК-блокнот или 'Printer' - принтер). Предполагается, что номера моделей в таблице Product уникальны для всех производителей и типов продуктов. В таблице PC для каждого ПК, однозначно определяемого уникальным кодом – code, указаны модель – model (внешний ключ к таблице Product), скорость - speed (процессора в мегагерцах), объем памяти - ram (в мегабайтах), размер диска - hd (в гигабайтах), скорость считывающего устройства - cd (например, '4x') и цена - price. Таблица Laptop аналогична таблице РС за исключением того, что вместо скорости CD содержит размер экрана -screen (в дюймах). В таблице Printer для каждой модели принтера указывается, является ли он цветным - color ('y', если цветной), тип принтера - type (лазерный – 'Laser', струйный – 'Jet' или матричный – 'Matrix') и цена - price.

2. Фирма вторсырья
Фирма имеет несколько пунктов приема вторсырья. Каждый пункт получает деньги для их выдачи сдатчикам вторсырья. Сведения о получении денег на пунктах приема записываются в таблицу:
Income_o(point, date, inc)
Первичным ключом является (point, date). При этом в столбец date записывается только дата (без времени), т.е. прием денег (inc) на каждом пункте производится не чаще одного раза в день. Сведения о выдаче денег сдатчикам вторсырья записываются в таблицу:
Outcome_o(point, date, out)
В этой таблице также первичный ключ (point, date) гарантирует отчетность каждого пункта о выданных деньгах (out) не чаще одного раза в день.
В случае, когда приход и расход денег может фиксироваться несколько раз в день, используется другая схема с таблицами, имеющими первичный ключ code:
Income(code, point, date, inc)
Outcome(code, point, date, out)
Здесь также значения столбца date не содержат времени.

3. Корабли
Рассматривается БД кораблей, участвовавших во второй мировой войне. Имеются следующие отношения:
Classes (class, type, country, numGuns, bore, displacement)
Ships (name, class, launched)
Battles (name, date)
Outcomes (ship, battle, result)
Корабли в «классах» построены по одному и тому же проекту, и классу присваивается либо имя первого корабля, построенного по данному проекту, либо названию класса дается имя проекта, которое не совпадает ни с одним из кораблей. Корабль, давший название классу, называется головным.
Отношение Classes содержит имя класса, тип (bb для боевого (линейного) корабля или bc для боевого крейсера), страну, в которой построен корабль, число главных орудий, калибр орудий (диаметр ствола орудия в дюймах) и водоизмещение ( вес в тоннах). В отношении Ships записаны название корабля, имя его класса и год спуска на воду. В отношение Battles включены название и дата битвы, в которой участвовали корабли, а в отношении Outcomes – результат участия данного корабля в битве (потоплен-sunk, поврежден - damaged или невредим - OK). Замечание. В отношение Outcomes могут входить корабли, отсутствующие в отношении Ships.
student223 вне форума Ответить с цитированием
Старый 14.01.2009, 19:24   #3
student223
 
Регистрация: 14.01.2009
Сообщений: 3
По умолчанию

4. Аэрофлот
Схема БД состоит из четырех отношений:
Company (ID_comp, name)
Trip(trip_no, ID_comp, plane, town_from, town_to, time_out, time_in)
Passenger(ID_psg, name)
Pass_in_trip(trip_no, date, ID_psg, place)
Таблица Company содержит идентификатор и название компании, осуществляющей перевозку пассажиров. Таблица Trip содержит информацию о рейсах: номер рейса, идентификатор компании, тип самолета, город отправления, город прибытия, время отправления и время прибытия. Таблица Passenger содержит идентификатор и имя пассажира. Таблица Pass_in_trip содержит информацию о полетах: номер рейса, дата вылета (день), идентификатор пассажира и место, на котором он сидел во время полета. При этом следует иметь в виду, что
- рейсы выполняются ежедневно, а длительность полета любого рейса менее суток;
- время и дата учитывается относительно одного часового пояса;
- время отправления и прибытия указывается с точностью до минуты;
- среди пассажиров могут быть однофамильцы (одинаковые значения поля name, например, Bruce Willis);
- номер места в салоне – это число с буквой; число определяет номер ряда, буква (a – d) – место в ряду слева направо в алфавитном порядке;
- связи и ограничения показаны на схеме данных.

5. Окраска
Схема базы данных состоит из трех отношений:
utQ (Q_ID int,Q_NAME varchar(35))
utV (V_ID int,V_NAME varchar(35),V_COLOR char(1))
utB (B_Q_ID int,B_V_ID int,B_VOL tinyint, B_DATETIME datetime)
Таблица utQ содержит идентификатор и название квадрата, цвет которого первоначально черный.
Таблица utV содержит идентификатор, название и цвет баллончика с краской.
Таблица utB содержит информацию об окраске квадрата баллончиком: идентификатор квадрата, идентификатор баллончика, количество краски и время окраски.
При этом следует иметь в виду, что:
- баллончики с краской могут быть трех цветов - красный V_COLOR='R', зеленый V_COLOR='G', голубой V_COLOR='B' (латинские буквы).
- объем баллончика равен 255 и первоначально он полный;
- цвет квадрата определяется по правилу RGB, т.е. R=0,G=0,B=0 - черный, R=255, G=255, B=255 - белый;
- запись в таблице закрасок utB уменьшает количество краски в баллончике на величину B_VOL и соответственно увеличивает количество краски в квадрате на эту же величину;
- значение 0 < B_VOL <= 255
- Количество краски одного цвета в квадрате не превышает 255, а количество краски в баллончике не может быть меньше нуля.
student223 вне форума Ответить с цитированием
Старый 15.01.2009, 20:05   #4
albatros
Пользователь
 
Регистрация: 09.05.2008
Сообщений: 39
По умолчанию

не легче ли купить книгу по sql
Непечатный жаргон - это тот язык, которым решительно все программисты владеют в совершенстве.
albatros вне форума Ответить с цитированием
Старый 16.01.2009, 17:01   #5
NOOB
Пользователь
 
Аватар для NOOB
 
Регистрация: 01.11.2007
Сообщений: 45
По умолчанию

Таблицы-то ты описал, а запросы-то какие нужны?
NOOB вне форума Ответить с цитированием
Старый 24.10.2011, 16:12   #6
ramzes604
Новичок
Джуниор
 
Регистрация: 24.10.2011
Сообщений: 1
По умолчанию

Определить названия всех кораблей из таблицы Ships, которые могут быть линейным японским кораблем,
имеющим число главных орудий не менее девяти, калибр орудий менее 19 дюймов и водоизмещение не более 65 тыс.тонн!
Можете помочь с таким запросом?
ramzes604 вне форума Ответить с цитированием
Старый 24.10.2011, 16:42   #7
Asinkrit
Пользователь
 
Аватар для Asinkrit
 
Регистрация: 02.04.2011
Сообщений: 48
По умолчанию

Вообще-то, эти задания с сайта тестов по sql. sql-ex.ru И я рекомендовал бы перенести тему в раздел фриланс.
Asinkrit вне форума Ответить с цитированием
Старый 12.05.2012, 20:36   #8
DEMONENOC
Ещё живой
Пользователь
 
Аватар для DEMONENOC
 
Регистрация: 06.01.2009
Сообщений: 18
По умолчанию

Описание базы тут http://www.sql-tutorial.ru/ru/book_painting.html
Сама база тут http://www.sqlbooks.ru/files/painting_script.zip
Задача:
При условии, что баллончики с красной краской использовались более одного раза, выбрать из них такие, которыми окрашены квадраты, имеющие голубую компоненту. Вывести название баллончика
Смерть, это всего лишь начало ...
DEMONENOC вне форума Ответить с цитированием
Старый 16.05.2012, 14:41   #9
DEMONENOC
Ещё живой
Пользователь
 
Аватар для DEMONENOC
 
Регистрация: 06.01.2009
Сообщений: 18
По умолчанию

составил запрос:

select v_name from utV join (
select ups.B_V_ID as qwad from
(SELECT B_V_ID FROM utB where B_Q_ID in
(select B_V_ID as ddd from utB join
(Select E.B_Q_ID from
(Select B_Q_ID FROM
(SELECT utV.V_ID FROM utV WHERE V_COLOR='B')C JOIN utB ON utB.B_V_ID=C.V_ID )O join(
select B_Q_ID from utB B JOIN(
Select B_V_ID From (
SELECT utV.V_ID FROM utV WHERE V_COLOR='R')A JOIN utB ON utB.B_V_ID=A.V_ID group by B_V_ID having count(B_V_ID)>1)D on B.B_V_ID=D.B_V_ID)E on O.B_Q_ID=E.B_Q_ID group by E.B_Q_ID , O.B_Q_ID)t on B_V_ID=t.B_Q_ID group by B_V_ID))ups join(
select B_V_ID from
(SELECT utV.V_ID FROM utV WHERE V_COLOR='R')A left JOIN utB ON utB.B_V_ID=A.V_ID group by B_V_ID having count(B_V_ID)>1)up on ups.B_V_ID=up.B_V_ID)q on q.qwad=V_ID group by V_NAME

v_name
-----------------------------------
Balloon # 01
Balloon # 10
Balloon # 17
Balloon # 31
Balloon # 34

(строк обработано: 5)

но на проверочной базе число записей меньше на 2.
где я накасячил?
Смерть, это всего лишь начало ...
DEMONENOC вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вложенные запросы SQL KsandrXXX Помощь студентам 4 11.02.2011 11:40
SQL - запросы в Delphi zetrix БД в Delphi 41 08.06.2010 14:07
sql запросы wolf950 БД в Delphi 2 28.11.2008 21:26
Запросы SQL в Delphi antoni БД в Delphi 13 02.09.2008 00:53
Осваиваю SQL запросы artemavd БД в Delphi 1 31.08.2008 19:18