![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по SELECT
Юлия © (2003-09-03 09:46:00)
Уважаемые мастера, подскажите, пожалуйста!
Есть запрос:
SELECT a.nazv,a.kol from a
Результат:
Ботинки 5
Рубашки 6
Пуговицы 3
Ботинки 3
Как сгруппировать, чтобы было:
Ботинки 8
Рубашки 6
Пуговицы 3
Sandman25 (2003-09-03 12:54:00) [1]
[32] Юлия (03.09.03 12:26)
Не надо арифметикой заниматься. Надо взять книгу по SQL, как Anatoly Podgoretsky советует.
Anatoly Podgoretsky (2003-09-03 12:32:00) [2]
Юлия (03.09.03 12:19) [30]
Не по Дельфи надо читать, а возьми Грабера - введение в SQL
Anatoly Podgoretsky (2003-09-03 12:32:00) [3]
Юлия (03.09.03 12:19) [30]
Не по Дельфи надо читать, а возьми Грабера - введение в SQL
Юлия (2003-09-03 12:26:00) [4]
Sandman25: просто хотела узнать, как это сделать ГРАМОТНО!
Перебрать записи и заняться арифметикой могу и сама.
MsGuns (2003-09-03 12:19:00) [5]
>Юлия (03.09.03 12:12) [27]
>А если запрос выполнен, как получить сумму по столбцу?
Составить второй запрос с условиями выборки=основному, но с суммированием и выполнить его.
Юлия (2003-09-03 12:19:00) [6]
Я книжку по дельфи на ночь читаю. Без шуток.
Я действительно запуталась.
Sandman25 (2003-09-03 12:14:00) [7]
Юлия, прочитайте [26] stone © (03.09.03 12:12)
MsGuns (2003-09-03 12:13:00) [8]
Откуда взялось 11 ? Есть какой-то признак, отделяющий рубашки с пуговицами от ботинок ? Типа групп товаров ? Если есть, то в подзапросе нужна связка через это поле в операторе where
Юлечка, а самой поэкспериментировать не судьба ? Так и будем после каждого чиха за таблеткой в форум бегать ?
Юлия (2003-09-03 12:12:00) [9]
А если запрос выполнен, как получить сумму по столбцу?
stone (2003-09-03 12:12:00) [10]
2 Юлия (03.09.03 12:05) [23]
Возможно и так, и еще как угодно, достаточно хотя бы на секундочку задуматься над тем что Вы пишите. Нередко помогает чтение книг.
Mike Kouzmine (2003-09-03 12:11:00) [11]
поставь условие на (select sum(prodaj.OP_dol) from prodaj)
Sandman25 (2003-09-03 12:09:00) [12]
Добавьте where nom_prep > 10 во вложенный select (тот, который знаменатель считает).
Юлия (2003-09-03 12:05:00) [13]
Спасибо, но...
если так:
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
Sergey13 (2003-09-03 11:56:00) [14]
2MsGuns © (03.09.03 11:48) [21]
>Вместто "17" надо встроенный Select SUM(prodaj.OP_dol from prodaj
Только желательно отработать его предварительно и записать результат в переменную, а в запросе делить на нее, иначе наверное (надо проверять) подзапрос будет отрабатываться для каждой строки - запаришься ждать.
MsGuns (2003-09-03 11:48:00) [15]
Вместто "17" надо встроенный Select SUM(prodaj.OP_dol from prodaj
MadDogNT (2003-09-03 11:47:00) [16]
Как всегда кто-то меня опередит!
На этот раз это был Stone:))
stone (2003-09-03 11:45:00) [17]
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:00) [18]
Надо делать подчиненный запрос
Юлия (2003-09-03 11:34:00) [19]
Нет, имеется вв виду, что 17 - это сумма по столбцу (8+6+3)
stone (2003-09-03 11:27:00) [20]
Query1.SQL.Add("SELECT prodaj.nom_prep,sum(prodaj.OP_dol)/17 from prodaj");
query1.SQL.Add(" group by prodaj.nom_prep");