Форум: "Базы";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизВопрос по SELECT Найти похожие ветки
← →
Юлия (2003-09-03 09:46) [0]Уважаемые мастера, подскажите, пожалуйста!
Есть запрос:
SELECT a.nazv,a.kol from a
Результат:
Ботинки 5
Рубашки 6
Пуговицы 3
Ботинки 3
Как сгруппировать, чтобы было:
Ботинки 8
Рубашки 6
Пуговицы 3
← →
stone (2003-09-03 09:47) [1]SELECT a.nazv,sum(a.kol) from a group by a.nazv
← →
Юлия (2003-09-03 09:52) [2]а чтобы количество суммировалось?
← →
Ann (2003-09-03 09:59) [3]
> [2] Юлия (03.09.03 09:52)
> а чтобы количество суммировалось?
а разве
> [1] stone © (03.09.03 09:47)
> SELECT a.nazv,sum(a.kol) from a group by a.nazv
не суммируется?
← →
Sergey13 (2003-09-03 10:05) [4]2Ann © (03.09.03 09:59) [3]
>а разве не суммируется?
Ну так это же пробовать надо, смотреть. 8-)
← →
Ann (2003-09-03 10:11) [5]
> Sergey13 © (03.09.03 10:05)
ну да :))
← →
Sergey13 (2003-09-03 10:26) [6]2Юлия (03.09.03 09:46)
А у вас в таблице так и есть
Ботинки 5
Рубашки 6
Пуговицы 3
Ботинки 3
Или это "упрощение для примера"? Если так то как вы будете отличать/суммировать Ботинки и Туфли мужские например?
← →
Юлия (2003-09-03 10:34) [7]Когда пишу Group, вылезает ошибка:
When GROUP BY exist, every simple field in projectors must be in GROUP BY
Что это значит? Нужно в GROUP указывать ВСЕ поля?
Sergey: Да, это "Упрощение"
← →
MadDogNT (2003-09-03 10:39) [8]Абсолютно верно.
В GROUP нужно указывать все поля
← →
MadDogNT (2003-09-03 10:39) [9]Абсолютно верно.
В GROUP нужно указывать все поля
← →
stone (2003-09-03 10:39) [10]
> Юлия (03.09.03 10:34) [7]
Ты бы полностью запрос показала. Тут телепатов нет.
← →
Юлия (2003-09-03 10:50) [11]Если указать все поля, не группируется, поскольку в первой и в последней записи разное значение поля sum. Выдаются все записи. Что делать?
← →
MadDogNT (2003-09-03 10:54) [12]Покажи запрос полностью
← →
Юлия (2003-09-03 10:57) [13]Query1.SQL.Add("SELECT prodaj.nom_prep,prodaj.OP_dol from prodaj");
query1.SQL.Add(" group by prodaj.nom_prep, prodaj.OP_dol");
← →
MadDogNT (2003-09-03 11:05) [14]Query1.SQL.Add("SELECT prodaj.nom_prep,sum(prodaj.OP_dol) from prodaj");
query1.SQL.Add(" group by prodaj.nom_prep");
← →
Юлия (2003-09-03 11:25) [15]Спасибо большое!
А еще вопрос: Как сделать, чтобы вычислялась доля по полю?
То есть
Ботинки 8/17
Рубашки 6/17
Пуговицы 3/17
← →
stone (2003-09-03 11:27) [16]Query1.SQL.Add("SELECT prodaj.nom_prep,sum(prodaj.OP_dol)/17 from prodaj");
query1.SQL.Add(" group by prodaj.nom_prep");
← →
Юлия (2003-09-03 11:34) [17]Нет, имеется вв виду, что 17 - это сумма по столбцу (8+6+3)
← →
stone (2003-09-03 11:45) [18]SELECT prodaj.nom_prep, sum(prodaj.OP_dol)/(select sum(prodaj.OP_dol) from prodaj) from prodaj group by prodaj.nom_prep
а вообще при составлении вопроса неплохо бы указать СУБД и компоненты доступа к данным, так как при этом есть масса способов уиличения быстродействия системы за счет ряда методов.
← →
MadDogNT (2003-09-03 11:45) [19]Надо делать подчиненный запрос
← →
MadDogNT (2003-09-03 11:47) [20]Как всегда кто-то меня опередит!
На этот раз это был Stone:))
← →
MsGuns (2003-09-03 11:48) [21]Вместто "17" надо встроенный Select SUM(prodaj.OP_dol from prodaj
← →
Sergey13 (2003-09-03 11:56) [22]2MsGuns © (03.09.03 11:48) [21]
>Вместто "17" надо встроенный Select SUM(prodaj.OP_dol from prodaj
Только желательно отработать его предварительно и записать результат в переменную, а в запросе делить на нее, иначе наверное (надо проверять) подзапрос будет отрабатываться для каждой строки - запаришься ждать.
← →
Юлия (2003-09-03 12:05) [23]Спасибо, но...
если так:
SELECT prodaj.nom_prep, sum(prodaj.OP_dol)/(select sum(prodaj.OP_dol) from prodaj) from prodaj group by prodaj.nom_prep
query1.SQL.Add(" where nom_prep>10");
query1.SQL.Add(" group by prodaj.nom_prep");
Где поля nom_prep:
Ботинки 15
Рубашки 1
Пуговицы 2
В результате выдает:
Рубашки 8/17
Пуговицы 3/17
А нужно:
Рубашки 8/11
Пуговицы 3/11
Такое возможно?
База: paradox
← →
Sandman25 (2003-09-03 12:09) [24]Добавьте where nom_prep > 10 во вложенный select (тот, который знаменатель считает).
← →
Mike Kouzmine (2003-09-03 12:11) [25]поставь условие на (select sum(prodaj.OP_dol) from prodaj)
← →
stone (2003-09-03 12:12) [26]2 Юлия (03.09.03 12:05) [23]
Возможно и так, и еще как угодно, достаточно хотя бы на секундочку задуматься над тем что Вы пишите. Нередко помогает чтение книг.
← →
Юлия (2003-09-03 12:12) [27]А если запрос выполнен, как получить сумму по столбцу?
← →
MsGuns (2003-09-03 12:13) [28]Откуда взялось 11 ? Есть какой-то признак, отделяющий рубашки с пуговицами от ботинок ? Типа групп товаров ? Если есть, то в подзапросе нужна связка через это поле в операторе where
Юлечка, а самой поэкспериментировать не судьба ? Так и будем после каждого чиха за таблеткой в форум бегать ?
← →
Sandman25 (2003-09-03 12:14) [29]Юлия, прочитайте [26] stone © (03.09.03 12:12)
← →
Юлия (2003-09-03 12:19) [30]Я книжку по дельфи на ночь читаю. Без шуток.
Я действительно запуталась.
← →
MsGuns (2003-09-03 12:19) [31]>Юлия (03.09.03 12:12) [27]
>А если запрос выполнен, как получить сумму по столбцу?
Составить второй запрос с условиями выборки=основному, но с суммированием и выполнить его.
← →
Юлия (2003-09-03 12:26) [32]Sandman25: просто хотела узнать, как это сделать ГРАМОТНО!
Перебрать записи и заняться арифметикой могу и сама.
← →
Anatoly Podgoretsky (2003-09-03 12:32) [33]Юлия (03.09.03 12:19) [30]
Не по Дельфи надо читать, а возьми Грабера - введение в SQL
← →
Anatoly Podgoretsky (2003-09-03 12:32) [34]Юлия (03.09.03 12:19) [30]
Не по Дельфи надо читать, а возьми Грабера - введение в SQL
← →
Sandman25 (2003-09-03 12:54) [35][32] Юлия (03.09.03 12:26)
Не надо арифметикой заниматься. Надо взять книгу по SQL, как Anatoly Podgoretsky советует.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.01 c