Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для eppi
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 108

SQL Select

09.11.2016, 00:20. Показов 1655. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста написать запросы, пробовал сам, но не получается:

1) Найти имена всех мужчин, которые купили какой-то продукт каждой марки.
2) Найти имена всех женщин, которые жаловались минимум на 2 разных продукта.
3) Выберите все продукты, и для каждого из них вычислите:
A) Сколько клиентов купило их;
B) Общую стоимость, которую все клиенты потратили на них (price * purchace Count).
Результат имеет быть заказом регистрационным номером продукта.

Задания были на английском, поэтому вот оригиналы:
Кликните здесь для просмотра всего текста
1) Find names of all men who bought some product of each trademark.
2) Find names of all women who complained about at least 2 different products.
3) Select all products and for each of them compute A, How many different customers have bought it B, Total price that all customers have spent for it (price * purchace Count). The result have be order by the serial number of the product.


Вот то что у меня вышло:
1, это как оказалось полностью не верно:
MySQL
1
2
SELECT distinct(cu.name) FROM  test.customer cu, test.purchase pu, test.product pr
WHERE pu.pID = pr.pID and pu.pID = cu.zID and cu.gender = 'man' and pr.trademark IN (SELECT pr.trademark FROM test.product WHERE pu.pID=pr.pID);
2, здесь имеется доля правды, но все равно не правильно:
MySQL
1
2
SELECT distinct(cu.name) FROM  test.customer cu, test.purchase pu, test.complaint co
WHERE pu.nID = pu.pID  and cu.gender = 'female' and ((co.complaintOrder > 2) or (co.complaintOrder = 2));
В файле sql.txt скрипт создания таблиц, может кому пригодится.
Заранее благодарю
Вложения
Тип файла: txt sql.txt (11.8 Кб, 4 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2016, 00:20
Ответы с готовыми решениями:

Запросы Select в SQL
Ребята может кто-нибудь помочь с запросами? 1. Выбрать товары, которые поставлялись в июле и июне 1996г из Москвы 2. Выбрать...

Записать инфо из select SQL
Доброго времени суток! уважаемые форумчане, давно интересует такой вопрос, но нигде не могу найти ответа на него... к примеру запросом...

MS SQL - SELECT без повторов?
Здравствуйте товарищи. Запутался вконец. Имеется у меня таблица, в которой два столбца - MyDate (DateTime) и MyString (varchar(max)). В...

7
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
09.11.2016, 15:13
Лучший ответ Сообщение было отмечено eppi как решение

Решение

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
SELECT [zID]
      ,[name]
      ,[gender]
      ,[registrationYear]
      ,[sendNews]
      ,[email]
  FROM [tester].[test].[Customer]
    where gender = 'man'
        and zID in 
            (
                SELECT distinct([zID]) FROM [tester].[test].[Purchase]
            )
первый
T-SQL
1
2
3
4
5
6
7
8
9
10
11
[size="1"][color="grey"][I]Добавлено через 26 минут[/I][/color][/size]
SELECT  p.[pID]
      ,[serialNr]
      ,[trademark]
      ,[lastProductionYear]
            , count_all -- Все покупки (включая любдей купивших несколько раз)
            ,count_dictinct -- к-во уникальных клиентов купивших товар
            , sum_pur -- сумма потраченная на товар...
  FROM [tester].[test].[Product] p 
        left join (SELECT [pID],  count( [zID]) count_all,  count(distinct [zID]) as count_dictinct, sum([purchaseCount]*[price]) as sum_pur FROM [tester].[test].[Purchase]    GROUP by [pID]) pc on pc.[pID] = p.[pID]
    ORDER BY [serialNr] -- сортировка по серийному номеру
Третий

Добавлено через 3 часа 18 минут
Не понял где жалобы фиксируются и как...
1
 Аватар для eppi
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 108
09.11.2016, 22:37  [ТС]
В таблице "Complaint"
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
10.11.2016, 15:12
опишите эту таблицу... Какое поле за, что отвечает?
0
 Аватар для eppi
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 108
10.11.2016, 18:42  [ТС]
_pva , nID - это id покупки
complaintOrder - я так понял это порядок рассмотрения жалоб
duration - дословно это продолжительность или длительность жалобы
price - это я думаю понятно(цена)
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
10.11.2016, 21:08
т.е. у Вас на одну и ту же покупку жаловались по несколько раз?
Особенно это показательно на покупке с ИД 1
INSERT [test].[Purchase] ([nID], [zID], [pID], [purchaseDay], [price], [purchaseCount]) VALUES (1, 2, 1, CAST(N'2013-08-01 01:36:00.0000000' AS DateTime2), 3503, 0)
Здесь купленное к-во равно 0
и при этом две жалобы))))

INSERT [test].[Complaint] ([nID], [complaintOrder], [duration], [price]) VALUES (1, 1, 8, 2356)
INSERT [test].[Complaint] ([nID], [complaintOrder], [duration], [price]) VALUES (1, 2, 4, 7575)

Добавлено через 18 секунд
т.е. у Вас на одну и ту же покупку жаловались по несколько раз?
Особенно это показательно на покупке с ИД 1
INSERT [test].[Purchase] ([nID], [zID], [pID], [purchaseDay], [price], [purchaseCount]) VALUES (1, 2, 1, CAST(N'2013-08-01 01:36:00.0000000' AS DateTime2), 3503, 0)
Здесь купленное к-во равно 0
и при этом две жалобы))))

INSERT [test].[Complaint] ([nID], [complaintOrder], [duration], [price]) VALUES (1, 1, 8, 2356)
INSERT [test].[Complaint] ([nID], [complaintOrder], [duration], [price]) VALUES (1, 2, 4, 7575)

Добавлено через 1 минуту
Это вообще, что за база?
Какая-то очередная курсовая?)))
1
 Аватар для eppi
3 / 3 / 2
Регистрация: 13.02.2012
Сообщений: 108
10.11.2016, 22:13  [ТС]
Странно, но там пояснение к бд не дается, гадай и думай, что там имелось ввиду
Это задание из методичек иностранного университета, спасибо вам большое
0
57 / 57 / 10
Регистрация: 27.02.2010
Сообщений: 282
11.11.2016, 10:27
Завтра запрос сделаю, Ваша база осталась на работе

Добавлено через 12 часов 5 минут
T-SQL
1
2
3
4
5
6
7
SELECT count(c.[zID]) as number_complaint, c.name
  FROM [test].[Purchase] p , [test].[Customer] c
    where c.zID = p.zID
        and c.gender = 'female'
        and p.nID in (SELECT distinct [nID] FROM [test].[Complaint] )
    GROUP BY c.name
    HAVING count(c.[zID]) >= 2
Ответ на второе задание
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.11.2016, 10:27
Помогаю со студенческими работами здесь

Использовать значения запроса SELECT в t-sql
Добрый день. Проблема такая. Мне нужно получить данные select'm а потом их далее использовать в триггере. С БД пока на Вы, а триггеры...

[sql]подскажите, как сделать select с разделением запятыми
условие: есть 2 столбца, отношение первого ко второму 1 к n (ну пусть фио, расходы) хочется сделать select, чтобы в первом...

Найти самый продаваемый товар (SELECT Transact-SQL)
Пытаюсь вывести самый продаваемый товар в базе данных "Ювелирный магазин", выводится только ID Товара и количество его продаж, а для самого...

Как вывести результат запроса select в txt-файл? (Transact-SQL)
Как вывести результат запроса select в txt-файл? (Transact-SQL)

SQL Запросы в Базе Данных (SELECT, DELETE). Возникли некоторые трудности в их составлении
Здравствуйте, мне нужно сделать следующие запросы в базе данных "Автовокзал" (схема во вложениях): На Select: 1) Для каждого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru