SQL
|
|
Лал | Дата: Среда, 19.10.2011, 15:20 | Сообщение # 1 |
Группа: Новобранцы
Сообщений: 157
Статус: Offline
| Нужен терпеливый человек, разбирающийся в построении sql-запросов,по учебе нужно,так что не думаю,что там будет что-то архи сложное для знающих
|
|
| |
Вев | Дата: Среда, 19.10.2011, 15:42 | Сообщение # 2 |
Группа: Родичи
Сообщений: 1231
Статус: Offline
| конкретно что ? в Access, Delphi и т.д, мне кажется смогу помочь
Сказки про Змея Горыныча убедительно доказали: чем ты головастей, тем больше охотников с тобой разделаться.
|
|
| |
Лал | Дата: Среда, 19.10.2011, 16:14 | Сообщение # 3 |
Группа: Новобранцы
Сообщений: 157
Статус: Offline
| Там без конкретных программ. У нас наибольшее затруднение вызвала следующая задача: Указать для каждой декады месяцев, где производились продажи.Выводить декаду, номер месяца,сумму продаж 1 декада с по10 2 декада с 11 по 20 3 декада с 21 по 31 Для каждой декады вывести суммы продаж,показать номер декады,сумму продаж
Из самих данных - таблица sales Со столбцами Стоимость единицы товара - price Количество проданного товара - kolichestvo Дата продажи-data
Сообщение отредактировал Лал - Среда, 19.10.2011, 16:15 |
|
| |
Вев | Дата: Среда, 19.10.2011, 16:31 | Сообщение # 4 |
Группа: Родичи
Сообщений: 1231
Статус: Offline
| Всего два столбца? 1 ключ строки, 2 наименование товара, стоимость, поступило, дата поступления, дата продаж, продано, цена продаж, это как минимум. Что за товар или без разницы? какой минимальный ( месяц, квартал, год) период БД? А лучше скинь подробно условия задачи. Таблицу в какой проге набивали?
Сказки про Змея Горыныча убедительно доказали: чем ты головастей, тем больше охотников с тобой разделаться.
Сообщение отредактировал Вев - Среда, 19.10.2011, 16:49 |
|
| |
Спайни | Дата: Среда, 19.10.2011, 16:46 | Сообщение # 5 |
Группа: Администраторы
Сообщений: 531
Статус: Offline
| если не париться сильно, я бы тупо написал такой запрос:
SELECT "1" as dekada, month(data) as month, sum(price*kolichestvo) as total FROM `sales` WHERE day(data)<11 GROUP by 2 UNION SELECT "2" as dekada, month(data) as month, sum(price*kolichestvo) as total FROM `sales` WHERE day(data)>10 AND day(data)<21 GROUP by 2 UNION SELECT "3" as dekada, month(data) as month, sum(price*kolichestvo) as total FROM `sales` WHERE day(data)>20 GROUP by 2 ORDER BY 2,1
Anonymous Mail. Deferred Mail. Delayed Mail. Анонимная Доставка Электронной Почты Отложенная Доставка Электронной Почты
|
|
| |
Вальдин | Дата: Среда, 19.10.2011, 16:53 | Сообщение # 6 |
Группа: Родичи
Сообщений: 830
Статус: Offline
| Книжка вот может будет полезна http://www.proklondike.com/books....ih.html
|
|
| |
Лал | Дата: Среда, 19.10.2011, 17:11 | Сообщение # 7 |
Группа: Новобранцы
Сообщений: 157
Статус: Offline
| К сожалению подробно условия предоставить не могу,т.к. лабораторная написана в виде специальной программы (дипломная работа одного из выпускников института), доступ к которой мы получаем непосредственно на самой паре
По идее будет нечто типа Select summa_prodazh,Nomer_dekady From sales А дальше я так понимаю нужно разбить на декады и в каждой, если стоимость единицы*количество товара >0, делать вывод в таблицу результат, но вот как это можно сделать нам за 4 пары лекций на весь курс sql так и не объяснили(
Добавлено (19.10.2011, 17:11) --------------------------------------------- Спайни, а как-то можно туда еще условие добавить,чтоб сумма была больше 0,т.к. интересуют именно те декады,где были продажи? Вальдин,за книжку спасибо,попробую тоже там поискать чего-нибудь)
Сообщение отредактировал Лал - Среда, 19.10.2011, 17:11 |
|
| |
Спайни | Дата: Среда, 19.10.2011, 17:18 | Сообщение # 8 |
Группа: Администраторы
Сообщений: 531
Статус: Offline
| Опять же повторюсь - можно все написать красивее, но оно нам надо ?
SELECT "1" as dekada, month(data) as month, sum(price*kolichestvo) as total FROM `sales` WHERE day(data)<11 AND price>0 AND kolichestvo>0 GROUP by 2 UNION SELECT "2" as dekada, month(data) as month, sum(price*kolichestvo) as total FROM `sales` WHERE day(data)>10 AND day(data)<21 AND price>0 AND kolichestvo>0 GROUP by 2 UNION SELECT "3" as dekada, month(data) as month, sum(price*kolichestvo) as total FROM `sales` WHERE day(data)>20 AND price>0 AND kolichestvo>0 GROUP by 2 ORDER BY 2,1
Главное, чтобы преп понял и поверил, что сама писала
Anonymous Mail. Deferred Mail. Delayed Mail. Анонимная Доставка Электронной Почты Отложенная Доставка Электронной Почты
|
|
| |
Вальдин | Дата: Среда, 19.10.2011, 17:39 | Сообщение # 9 |
Группа: Родичи
Сообщений: 830
Статус: Offline
| Спайни, AS, GROUP by не слишком ли для 4-х пар лекций? Лал, вы это проходили? А то вдруг преподаватель удивится обширностью познаний.
|
|
| |
Вев | Дата: Среда, 19.10.2011, 17:47 | Сообщение # 10 |
Группа: Родичи
Сообщений: 1231
Статус: Offline
| Т.е. я так понял что база данных сформирована, а вы должны только создать запрос?
Сказки про Змея Горыныча убедительно доказали: чем ты головастей, тем больше охотников с тобой разделаться.
|
|
| |
Лал | Дата: Среда, 19.10.2011, 18:02 | Сообщение # 11 |
Группа: Новобранцы
Сообщений: 157
Статус: Offline
| Спайни,спасибо) Вальдин,у нас весь курс идет из 5 пар:) Нам еще преподаватель дал ссылку на сайт с упражнениями для самостоятельного изучения,да и вечерники мы - по идее должны большую часть сами изучать Вев,да именно так:)
|
|
| |
Спайни | Дата: Среда, 19.10.2011, 18:07 | Сообщение # 12 |
Группа: Администраторы
Сообщений: 531
Статус: Offline
| Не, как раз все очень просто - три простейших запроса, объединенных через UNION + конечная сортировка результата. По условию задачи там без GROUP не обойтись, а AS - он же вообще безобидный - просто именует столбец
Anonymous Mail. Deferred Mail. Delayed Mail. Анонимная Доставка Электронной Почты Отложенная Доставка Электронной Почты
|
|
| |
|