|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.03.2016, 18:03 | #1 |
Форумчанин
Регистрация: 07.07.2010
Сообщений: 825
|
задача по sql
условие
Схема базы данных состоит из трех отношений: 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, а количество краски в баллончике не может быть меньше нуля; - время окраски B_DATETIME дано с точностью до секунды, т.е. не содержит миллисекунд. найти C точностью до двух десятичных знаков определить среднее количество краски на квадрате. пробовал вот так не выходит select avg(tabel.vol) from (select Sum(B_VOL) as vol from utB inner join utQ on utB.B_Q_ID =utQ.Q_ID group by utQ.Q_NAME) as tabel |
30.03.2016, 18:19 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
group by utQ.Q_NAME не корректно, ни где не сказано, что название у разных квадратов разное.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 30.03.2016 в 18:22. |
31.03.2016, 14:36 | #3 |
Форумчанин
Регистрация: 07.07.2010
Сообщений: 825
|
в выражении теряется дробная часть,как её сохранить
|
31.03.2016, 14:37 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В каком?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
01.04.2016, 11:13 | #5 |
Новичок
Джуниор
Регистрация: 05.06.2015
Сообщений: 2
|
Скорее вопрос в типах
Таблицы не имеют дробных значений и они будут преобразовываться к целым.
тут utB (B_Q_ID int, B_V_ID int, B_VOL tinyint, B_DATETIME datetime). Тогда например вместо int (money,real) Ну или так то с преобразованием и округлением до 2 знаков после запятой SELECT round(AVG(cast(tabel.VOL as real)),2) FROM ( SELECT ISNULL(SUM(utB.B_VOL),0) AS VOL FROM utQ LEFT JOIN utB ON utB.B_Q_ID=utQ.Q_ID GROUP BY utQ.Q_ID) AS tabel Последний раз редактировалось Rodini; 01.04.2016 в 14:16. |
03.04.2016, 13:18 | #6 |
Форумчанин
Регистрация: 07.07.2010
Сообщений: 825
|
решая эту задачу на http://www.sql-ex.ru ,так вот пишет что
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на PL/SQl | ShaoKahn | Фриланс | 4 | 08.12.2014 09:25 |
Задача на PL/SQl | ShaoKahn | SQL, базы данных | 0 | 05.12.2014 10:26 |
Задача на sql | oleg2012g | SQL, базы данных | 3 | 22.05.2013 10:42 |
Задача по SQL | Сергей1_1 | Фриланс | 0 | 04.01.2011 00:10 |
Задача по SQL | gotex | SQL, базы данных | 11 | 23.12.2010 17:52 |