Главная страница
    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.063 c
14-1117717481
evvcom
2005-06-02 17:04
2005.07.11
Продолжение дискуссии "Как избежать гонок в потоках"


14-1118098112
KilkennyCat
2005-06-07 02:48
2005.07.11
Забавно, как можно посеять базу данных. Банковскую.


3-1116927000
msguns
2005-05-24 13:30
2005.07.11
Что нужно на клиенте для работы ADO+Access


1-1118655206
kkik
2005-06-13 13:33
2005.07.11
Access и Delphi


4-1115595703
NikNet
2005-05-09 03:41
2005.07.11
PopupMenu! как сделать для ListView (WinAPI)???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский