Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026

Помогите с заданием на SQL

17.12.2011, 15:55. Показов 2077. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Находит средний рост и вес мальчиков, девочек и всего класса
SQL
1
2
3
4
5
6
7
8
9
10
SELECT AVG(Вес) AS Мальчики
FROM Ученик INNER JOIN [Антропометрия ученика] ON Ученик.Код_ученик=[Антропометрия ученика].Код_ученик
WHERE Пол="муж"
UNION
SELECT AVG(Вес) AS Девочки
FROM Ученик INNER JOIN [Антропометрия ученика] ON Ученик.Код_ученик=[Антропометрия ученика].Код_ученик
WHERE Пол="жен"
UNION
SELECT AVG(Вес) AS [Весь класс]
FROM [Антропометрия ученика]
Запрос считает все правильно,но не понятно ,что к чему относится(где средний вес мальчиков,а где средний вес девочек,а де вообще всего класса).Думал,через AS сделать,но поле переименовыввается только в Мальчики и все .Как можно получить на выходе понятную таблицу .
Была идея попробовать создать через запрос таблицу,но что-то не получилось=(

Добавлено через 10 минут
Еще есть такая вот идея,но я не знаю,как сделать ,что бы напротив цифры в столбике принадлежность пропечатарсь сообщение мальчики
SQL
1
2
3
SELECT AVG(Вес) ,Рост AS [Принадлежность]
FROM Ученик INNER JOIN [Антропометрия ученика] ON Ученик.Код_ученик=[Антропометрия ученика].Код_ученик
WHERE Пол="муж"
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2011, 15:55
Ответы с готовыми решениями:

ПОМОГИТЕ С ЗАДАНИЕМ!
ПОМОГИТЕ РЕШИТЬ ХОТЬ ОДНО ЗАДАНИЕ ПОЖАЛУЙСТА!!! Правило 5.4: "Запрещено создавать темы с бессмысленными названиями вроде...

Помогите с заданием
http://s1.ipicture.ru/uploads/20120114/BWTr3yZw.jpg Типа надо прединкремент заменить на постинкремент?

помогите с заданием по паскалю
помогите ответить на вопросы по паскалю, очень нужно завтра экзамен.!( вот фото задания http://zalil.ru/31233895 , не стал преписывать,...

17
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.12.2011, 16:13
Лучше выложите бд с вашими попытками, а то так не совсем понятно где у вас что не так!
1
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
17.12.2011, 16:23  [ТС]
Вот . 1 и 2 запрос ,как надо работают,вот мне надо ,что бы в 3 запросе было понятно,где средний вес девочек,а где срелний вес мальчиков,а где общий средний вес
Вложения
Тип файла: rar Архив WinRAR (2).rar (9.8 Кб, 19 просмотров)
0
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
17.12.2011, 16:25  [ТС]
А то выводит тупо 3 числа,а что где не ясно .
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.12.2011, 17:44
UNION SELECT обязателен?

Добавлено через 5 минут
Чуть чуть поправил вас, вот вам скл:
SQL
1
2
3
4
5
6
7
8
9
10
SELECT AVG(Вес) AS [СреднееЗначение], "Мальчики" AS Принадлежность
FROM Ученик INNER JOIN [Антропометрия ученика] ON Ученик.Код_ученик=[Антропометрия ученика].Код_ученик
WHERE Пол="муж"
UNION
SELECT AVG(Вес) AS Девочки, "Девочки" AS Принадлежность
FROM Ученик INNER JOIN [Антропометрия ученика] ON Ученик.Код_ученик=[Антропометрия ученика].Код_ученик
WHERE Пол="жен"
UNION
SELECT AVG(Вес) AS [Весь класс], "Весь класс"  AS Принадлежность
FROM [Антропометрия ученика]
1
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
17.12.2011, 18:00  [ТС]
V_Monomax,
Спасибо,а как задать округление?А то слишком много чисел после запятой...
И вопрос по
"Мальчики" AS Принадлежность
"Девочки" AS Принадлежность
"Весь класс" AS Принадлежность
У нас же нет столбца мальчики,девочки,весь класс,как мы их можем выбрать? Объясните пожалуйста этот вид выборки ...
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.12.2011, 18:06
А мы их и не выбираем, мы просто задаем значение по умолчанию. Как видите они закавычены, следовательно это не переменные, а значение переменной. (так вроде это звучать должно при раскладывании на другие языки программирования).
1
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
17.12.2011, 18:20  [ТС]
V_Monomax, т.е с помощью этого приема можно создать столбец,которого нет в исходной бд со значением?
А как округлять числа?А то 6 числе послезапятой,это не хорошо как-то
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.12.2011, 18:25
Цитата Сообщение от iluxa1810 Посмотреть сообщение
т.е с помощью этого приема можно создать столбец,которого нет в исходной бд
можно, округлить можно через свойства в поле, или через Round(значениеДляОкругления; КоллличествоЗнаков).
1
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
17.12.2011, 19:16  [ТС]
V_Monomax,
Есть задание ко всем задания по БД,составить отчет по одному из запросов .
Это просто получить результаты запроса и счелкнуть по создать отчет и сохранить ?
А допустим надо задать условие выборки :Что бы вывелись машины купленные не позднее 3 лет назад .
(с 2008 по 2011).
Как это можно сделать?Поля отвечающие за дату имеют тип дата/время

Добавлено через 43 минуты
Ответьте кто-нибудь
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.12.2011, 19:52
в отборе поставьте Date()-3*365
1
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
17.12.2011, 20:06  [ТС]
V_Monomax, Спасибо,а функция Date возвращает же текущую дату т.е допустим 2011-11-17 ,как от него можно отнимать кол-во дней?

Добавлено через 3 минуты
А допустим если мне нужно вычислить 2 года назад в таком -то таком-то месяце и дне,то мне также подсчитывать придется ?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
17.12.2011, 22:49
так как любая дата изначально хранится числом, причем после запятой идет количество дней, а до запятой часы минуты и секунды то да вам придется
Цитата Сообщение от iluxa1810 Посмотреть сообщение
вычислить 2 года назад в таком -то таком-то месяце и дне
Честно говоря с датами редко встречался в фильтрах, потому подсказать как еще это можно сделать, не могу.
0
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
17.12.2011, 23:50
Цитата Сообщение от V_Monomax Посмотреть сообщение
так как любая дата изначально хранится числом, причем после запятой идет количество дней, а до запятой часы минуты и секунды то да вам придется
Почти всё так, только боюсь с точностью до наоборот.
Функция Date всегда возвращает целое положительное число.
Функция Time возвращает дробное положительное число меньше единицы.
И только функция Now возвращает дробное положительное число больше единицы
- до запятой: количество дней (если не ошибаюсь начиная с 1900-го года) по текущий момент
- после запятой: число секунд от начала суток по текущий момент

Вы же в своём примере отнимаете целое число дней. Как же тогда количество дней может идти после запятой? Может это была описка?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
18.12.2011, 00:02
Цитата Сообщение от Aeliot Посмотреть сообщение
Может это была описка?
Именно она самая, что-то я больно много эти делаю, а не пора ли
0
 Аватар для Aeliot
177 / 62 / 3
Регистрация: 17.11.2011
Сообщений: 318
18.12.2011, 10:04
Цитата Сообщение от iluxa1810 Посмотреть сообщение
Что бы вывелись машины купленные не позднее 3 лет назад. (с 2008 по 2011).
Тут есть несколько вариантов:

1) Если вам нужно сделать выборку по купленным машинам начиная с 1 января 2008-го года по текущий момент. Тогда в условии на выборку пишете: ">#1/1/2008#". В SQL, в предложении WHERE, это будет выглядеть приблизительно так: (([датаПокупки])>#1/1/2008#)

2) Если нужно сделать выборку за последние 1095 дней (в смысле за последние "целые" три года), то смотрите пример от V_Monomax.

3) Если нужно иметь выборку за последние полные и неполные три года без привязки к конкретной дате. На пример в 2012-ом году нужно иметь выборку начиная с 1 января 2009-го года, а править запрос каждый год неохото. Тогда заводите в запросе дополнительное поле, можно скрытое, в котором пишете DateDiff("yyyy", Now, [датаПокупки]). В условии пишете "<= 3"

Добавлено через 9 часов 39 минут
Посмотрите ещё здесь: Подсчет выслуги лет
0
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
18.12.2011, 13:56  [ТС]
Aeliot,
Вопрос про 3 вариант.
Т.е получается будет Where DateDiff("yyyy",[датаПокупки],NOW) <=3 ? (Местами я поменял из-за того,что в вашей ссылке было написано DateDiff("yyyy";[Начало];[Окончание]) или нет никакого значения ?)
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
19.12.2011, 03:31
Цитата Сообщение от iluxa1810 Посмотреть сообщение
или нет никакого значения ?)
А в справке как написано?
Можно ещё так ---->
SQL
1
SELECT * FROM t1 WHERE YEAR(DATE()) - YEAR([датаПокупки]) <= 3
Миниатюры
Помогите с заданием на SQL  
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2011, 03:31
Помогаю со студенческими работами здесь

Помогите с заданием: группа While
Даны целые положительные числа A и B. Найти их наибольший общий делитель (НОД), используя алгоритм Евклида: НОД(A, B)=НОД(B, A mob B), если...

Помогите с заданием паролей на папки
Я вот сижу на своем компе и тут есть виторой пользователь. Как мне сделать так чтоб он вообще не мог дотронуться к папкам в D: диске я...

Помогите разабраться с заданием по Excel
Здравствуйте уважаемые форумчане. У меня появилась загвозка с домашним заданием не могу понять что надо мне сделать, может вы сможете...

Delphi и Access (помогите с заданием)
Сделайте пожалуйста кто нибудь 1. В среде Delphi создайте простую форму для просмотра и редактирования информации, содержащейся в ...

Помогите пожалуйста разобраться с заданием MathCAD
Не могу разобраться с асимптотами и второй производной Условие на изображении


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru