|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.01.2009, 19:18 | #1 |
Регистрация: 14.01.2009
Сообщений: 3
|
Помогите написать sql запросы
помогите кто хорошо разбирается в sql написать запросы
|
14.01.2009, 19:23 | #2 |
Регистрация: 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. |
14.01.2009, 19:24 | #3 |
Регистрация: 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, а количество краски в баллончике не может быть меньше нуля. |
15.01.2009, 20:05 | #4 |
Пользователь
Регистрация: 09.05.2008
Сообщений: 39
|
не легче ли купить книгу по sql
Непечатный жаргон - это тот язык, которым решительно все программисты владеют в совершенстве.
|
16.01.2009, 17:01 | #5 |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
Таблицы-то ты описал, а запросы-то какие нужны?
|
24.10.2011, 16:12 | #6 |
Новичок
Джуниор
Регистрация: 24.10.2011
Сообщений: 1
|
Определить названия всех кораблей из таблицы Ships, которые могут быть линейным японским кораблем,
имеющим число главных орудий не менее девяти, калибр орудий менее 19 дюймов и водоизмещение не более 65 тыс.тонн! Можете помочь с таким запросом? |
24.10.2011, 16:42 | #7 |
Пользователь
Регистрация: 02.04.2011
Сообщений: 48
|
Вообще-то, эти задания с сайта тестов по sql. sql-ex.ru И я рекомендовал бы перенести тему в раздел фриланс.
|
12.05.2012, 20:36 | #8 |
Ещё живой
Пользователь
Регистрация: 06.01.2009
Сообщений: 18
|
Описание базы тут http://www.sql-tutorial.ru/ru/book_painting.html
Сама база тут http://www.sqlbooks.ru/files/painting_script.zip Задача: При условии, что баллончики с красной краской использовались более одного раза, выбрать из них такие, которыми окрашены квадраты, имеющие голубую компоненту. Вывести название баллончика
Смерть, это всего лишь начало ...
|
16.05.2012, 14:41 | #9 |
Ещё живой
Пользователь
Регистрация: 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. где я накасячил?
Смерть, это всего лишь начало ...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вложенные запросы 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 |