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

Вниз

Как просуммровать значения по полю таблицы?   Найти похожие ветки 

 
Гость2   (2005-05-27 11:38) [0]

Есть таблица с:\table.db у которой все поля типа float.
Как просуммировать (с помощью SQL-запроса) значение определенного поля и закинуть сумму в переменную?


 
Sergey13 ©   (2005-05-27 11:43) [1]

SQL - это язык. Чтобы "с помощью SQL-запроса" этот язык надо учить хоть немного, ибо твоя проблема это азы этого языка.


 
-=XP=- ©   (2005-05-27 11:46) [2]

SELECT
 SUM(<ColumnName>)
FROM
 <TableName>

P.S. Вообще-то [1] совершенно прав. Почитайте учебник по SQL.


 
Гость2   (2005-05-27 11:47) [3]

вот я и спрашиваю потому как не знаю


 
Anatoly Podgoretsky ©   (2005-05-27 11:49) [4]

Гость2   (27.05.05 11:47) [3]
Так это LocalSQL.hlp


 
Гость2   (2005-05-27 12:01) [5]

ну а как присвоить переменной значение выбраной запросом суммы?


 
Anatoly Podgoretsky ©   (2005-05-27 12:19) [6]

А это уже DelphiX.hlp
Но могу открыть секрет, операция присвоения делается с помощью оператора :=


 
Гость2   (2005-05-27 12:37) [7]

мне нравится ваше чувство юмора, но то, что для вас очевидно, для начинающего - темный лес.
Тогда дайте ссылку на учебник по SQL.

P.S. Что, можна так?
<переменная типа реал>:=Query1.Add("SELECT * SUM <ColumnName> FROM <TableName>);


 
seg   (2005-05-27 12:53) [8]

select sum(column_name) into mySumm from TableName


 
ANB ©   (2005-05-27 13:03) [9]


> <переменная типа реал>:=Query1.Add("SELECT * SUM <ColumnName>
> FROM <TableName>);

Не так нельзя. Нужно <переменная типа реал>:=Query1.Open; :)))
А в запрос запихать "SELECT *, **, *** SUM <ColumnName> FROM <TableName>";

Млин, я щас со смеху помру.


 
Anatoly Podgoretsky ©   (2005-05-27 13:03) [10]

Гость2   (27.05.05 12:37) [7]
На моем сайте есть проект DDP там много чего есть, учебник по SQL это нечто абстрактное.

P.S. Что, можна так?
<переменная типа реал>:=Query1.Add("SELECT * SUM <ColumnName> FROM <TableName>);


Так нельзя, у Tquery нет метода ADD


 
ANB ©   (2005-05-27 13:57) [11]

to Гость2.
Эхм. Я пообедал, сытый и добрый, так уж быть - напишу тебе инструкцию.
1. Зарегистрируйся на сайте, а то непонятно, с кем общаемся.
2. Купи книжку по делфи и SQL и прочитай их внимательно.
3. Так как собираешься работать с парадоксом - изучи LocalSQL.hlp.
4. Прежде чем засовывать запрос в делфи - отладь его хотя бы в DataBase Desktop.
5. Нужный тебе код выгдядит примерно так :

var X : Float;
begin
Query.Close;
Query.SQL.Text := "select sum(Field1) as Sum_Field1 from Table1";
Query.Open;
X := Query.FieldByName(Sum_Field1).AsFloat;
Query.Close;
// В X - нужная тебе сумма
end;


 
Anatoly Podgoretsky ©   (2005-05-27 14:17) [12]

ANB ©   (27.05.05 13:57) [11]
Спорим что будет вопрос по твоему коду, а может быть даже и ругань - "не работает"?


 
ANB ©   (2005-05-27 14:23) [13]


> Anatoly Podgoretsky ©   (27.05.05 14:17) [12]
- спорим. Будет.
Вместо
X := Query.FieldByName(Sum_Field1).AsFloat;
Надо
X := Query.FieldByName("Sum_Field1").AsFloat;
Но ругань все равно будет :)))


 
msguns ©   (2005-05-27 14:31) [14]

>ANB ©   (27.05.05 14:23) [13]
>Но ругань все равно будет :)))

Еще какая !!!
1) Что такое Table1 и почему нет информации о базе данных или пути к таблицу или алиасе ?
2) Нафига Ckose ?
3) Почему не в защищенном блоке ?
4) Зачем конструкция as если извлекается единственное поле ?
5) Почему asFloat для суммы ?
6) Зачем вообще переменная X, если можно непосредственно в контрол отображения или вернуть, если завернуть все это в функцию ?

Достаточно ?

;))


 
Sergey13 ©   (2005-05-27 14:41) [15]

[14] msguns ©   (27.05.05 14:31)
Ну вот и ругань, как и предупреждал АП. 8-)


 
Anatoly Podgoretsky ©   (2005-05-27 14:45) [16]

ANB ©   (27.05.05 14:23) [13]
Оставляешь ему как домашнее задание? Кстати это не единственная ошибка, просто затрудняюсь другую дефенировать, поскольку для этого мне нужен полный код программы, без него всегда можно сделать хитрый ход в сторону.


 
Anatoly Podgoretsky ©   (2005-05-27 14:45) [17]

По первой уже указаной аналогично.


 
Гость2   (2005-05-27 14:50) [18]

веселые вы ребята!
Спасибо ANB, seg и АР.


 
msguns ©   (2005-05-27 14:52) [19]

>Гость2   (27.05.05 14:50) [18]
>веселые вы ребята!
>Спасибо ANB, seg и АР.

А можно и мне маленький кусочек спасиба за [14] ?
 ;)


 
Гость2   (2005-05-27 15:04) [20]

Можно. Спасибо. До некоторых из твоих вопросов я бы не додумался.


 
ANB ©   (2005-05-27 15:11) [21]


> Еще какая !!!
> 1) Что такое Table1 и почему нет информации о базе данных
> или пути к таблицу или алиасе ?
> 2) Нафига Ckose ?
> 3) Почему не в защищенном блоке ?
> 4) Зачем конструкция as если извлекается единственное поле
> ?
> 5) Почему asFloat для суммы ?
> 6) Зачем вообще переменная X, если можно непосредственно
> в контрол отображения или вернуть, если завернуть все это
> в функцию ?

1) Table1 - таблица
2) На случай, если кверя была открыта
3) А зачем, все равно еще не умеет динамически объекты создавать, а для статических - только что клозить в finally. А исключения тут лучше не перехватывать - а то будут вопросы - почему у меня ошибок нет, а ничего не работает.
4) Чтобы не писать FieldByName("sum(Field1)")
5) Так просил же Float
6) В ТЗ написано - засунуть в переменную. Инициатива иногда наказуема.

> Спасибо ANB, seg и АР.
- спасибом сыт не будешь. С тебя пиво. Для всех.


 
Гость2   (2005-05-27 15:41) [22]

Если встретимся - обязательно.


 
Harley   (2005-05-27 15:58) [23]


> ANB ©   (27.05.05 13:57) [11]

Что такое Field1 и Sum_Field1 ? Field1 - это поле таблицы, а Sum_Field1?


 
Harley   (2005-05-27 16:17) [24]

Кто-то даст ответ или нет?


 
Johnmen ©   (2005-05-27 16:21) [25]

И то и другое - поля запроса. А не таблицы.


 
Гость2   (2005-05-27 16:33) [26]

Объясните пож. есть тадлица, где есть поля Pole1, Pole2, Pole3 типа float. Надо просуммировать по Pole1.
Можна переписать
> ANB ©   (27.05.05 13:57) [11]

для вышеуказаных полей.
Извините за бестольковость...


 
Johnmen ©   (2005-05-27 16:39) [27]

Если ещё не помянули LocalSQL.hlp, то настоятельно рекомендую изучить.


 
Гость2   (2005-05-27 16:43) [28]

А где его найти?


 
Johnmen ©   (2005-05-27 16:44) [29]

На диске. На том, который "винчестером" называется.


 
msguns ©   (2005-05-27 16:53) [30]

>ANB ©   (27.05.05 15:11) [21]
>1) Table1 - таблица  
 ГДЕ ?

2) На случай, если кверя была открыта
Закроется автоматически

3) А зачем, все равно еще не умеет динамически объекты создавать, а для статических - только что клозить в finally. А исключения тут лучше не перехватывать - а то будут вопросы - почему у меня ошибок нет, а ничего не работает.

>Гость2   (27.05.05 16:43) [28]
>А где его найти?

Help -> Delphi Tools -> Local SQL


;)

4) Чтобы не писать FieldByName("sum(Field1)")
 Fields[0]


 
Виталий Панасенко   (2005-05-27 17:13) [31]

Это тут не Джим Керри развлекается ? Третья часть фильма "Т и еще Т!" ...


 
ANB ©   (2005-05-27 17:41) [32]


>  Fields[0]
- некошерно. По именам надежнее.



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.072 c
1-1118357250
Сергей1
2005-06-10 02:47
2005.07.11
Работа с BitMap


14-1118603404
focor
2005-06-12 23:10
2005.07.11
+++Windows MOBILE+++


6-1112960035
}|{yk
2005-04-08 15:33
2005.07.11
Проблема с устновкой Indy 10


1-1118472818
violla
2005-06-11 10:53
2005.07.11
Деление на цело не работает?????????????


9-1111930862
qwe
2005-03-27 17:41
2005.07.11
3DS - текстуры