Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.25;
Скачать: CL | DM;

Вниз

Вопрос по 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;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.019 c
14-82488
TNT
2003-09-03 23:49
2003.09.25
А собственно для чего нужен свой сайт?


1-82333
postx
2003-09-10 20:36
2003.09.25
Можно ли запустить программу из ресурса без сохранения на диск?


1-82277
Юлия
2003-09-14 08:57
2003.09.25
Работа с датой


3-82088
Bezpal
2003-09-05 12:11
2003.09.25
Подскажите кто скока может как связать Delphi 5 и SQL Server 7.0


9-82026
Alexey Lipatov
2003-03-02 13:39
2003.09.25
А что скажут отцы ???