Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Гость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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.52 MB
Время: 0.032 c
14-1118597931
FVlad
2005-06-12 21:38
2005.07.11
Евро


14-1118028469
kaan
2005-06-06 07:27
2005.07.11
Процесс увольнения


1-1117912910
Destroyer
2005-06-04 23:21
2005.07.11
Как организовать несколько визуальных режимов программы?


1-1118603754
leonidus
2005-06-12 23:15
2005.07.11
Как скрыть с панели задач кнопки приложения?


14-1118379504
boriskb
2005-06-10 08:58
2005.07.11
Есть желающие прокоментировать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский