Форум: "Базы";
Текущий архив: 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