|
|
|
Как выбрать все строки таблицы кроме последней?
|
|||
|---|---|---|---|
|
#18+
tanglirЖеня32У меня есть две идеи-алгоритма: 1) Суммировать все строки поля(кроме последней) и полученную сумму вычесть из суммы последнего поля. 2) Из суммы записанной в последней строке, вычесть сумму содержащеюся в предпоследней строке.С первым вариантом вы чего-то напутали...1020304050последнее показание - 50, последний расход по первому варианту - сколько? или "из суммы последнего поля" надо читать как "из суммы, включающей последнее поле"? Женя32Select MAX(Холодная_Вода) from счетА вы не учитываете тот факт, что показания могут иногда передаваться с ошибками? То есть вот так, например:1020306050607080Ну путают люди цифры, на то они и люди... Ответ на первый вариант: Если показания были переданы не верно, то обслуживающая компания обычно поступает так(по крайне мере наша компания): 1-й месяц: 20; 2-й: 30; 3-й: 25 и т.д. Если последнии показания меньше чем в прошлом месяце, то последнии показания приравниваются к последниму наибольшему показанию: 25=30; 30-30=0. программно можно записать так: var a,b :integer; ... if a>b then a:=b; ... a-b=0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 19:31:53 |
|
||
|
Как выбрать все строки таблицы кроме последней?
|
|||
|---|---|---|---|
|
#18+
Arhat109Женя32, ... Для каждого счетчика храним "показание", "на дату" и заодно, при сохранении, сразу вычисляемое значение "расход_от последнего". Тогда сумма расходов по периоду будет суммарным расходом. Нет? Для этого варианта нужно дополнительное поле на каждый счетчик для хранения результата. ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select SUM(Холодная_Вода) from счет'); ADOQuery1.Open; holvod:=ADOQuery1.Fields[0].AsInteger; rez:b-holvod; Form1.ADOQuery2.Edit; Form1.ADOQuery2.FieldByName('Расход холвод').AsInteger :=rez; Form1.ADOQuery2.Post; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 19:54:33 |
|
||
|
Как выбрать все строки таблицы кроме последней?
|
|||
|---|---|---|---|
|
#18+
Женя32Ответ на первый вариант: Если показания были переданы не верно, то обслуживающая компания обычно поступает так(по крайне мере наша компания): 1-й месяц: 20; 2-й: 30; 3-й: 25 и т.д. Если последнии показания меньше чем в прошлом месяце, то последнии показания приравниваются к последниму наибольшему показанию: 25=30; 30-30=0.это не ответ или ответ, но не на тот вопрос напоминаю, вопрос был такой - каким образом сумма предыдущих показаний может помочь в расчёте текущего потребления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 20:06:56 |
|
||
|
Как выбрать все строки таблицы кроме последней?
|
|||
|---|---|---|---|
|
#18+
,tanglir..... напоминаю, вопрос был такой - каким образом сумма предыдущих показаний может помочь в расчёте текущего потребления? Да, Вы правы, эта идея неверна....... Тогда нужно исходить из того, что нужно находить поле с наибольшем значением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 21:08:34 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38458394&tid=1835761]: |
0ms |
get settings: |
7ms |
get forum list: |
24ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 293ms |

| 0 / 0 |
