Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2015, 17:16   #1
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию Помогите с SQL запросом.

Добрый день. В столбце PayerGasStore по очереди с верху в низ идут цифры.
Например:

1
1
2
1
2

Как вывести в DBGrid последнюю 1 ?
В ADOQuery написал
Код:
SELECT* from IndicatorsGas where "id_PayerGasStore = %1"
Но выводятся все записи.
Mat Bourn вне форума Ответить с цитированием
Старый 21.05.2015, 17:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Правильно. Так не получится, потому что значения дублируются. Я не в курсе, какая у тебя СУБД, но аналитическими функциями, способными идти по таблице как по массиву не все обладают.
Ты лучше опиши задачу полностью, чтоб было понятно для чего это все.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2015, 17:27   #3
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

БД ACCESS. Цифры это уникальные номера определенных пользователей.
Таблица показатели.

Пользователи |Старые показатели |Новые показатели
1____________|45________________|50
1____________|50________________|60
2____________|10________________|20
1____________|60________________|10 0
2____________|20________________|30

Вот к примеру у пользователя 1, последние показатели 60 -----100, и по уникальному номеру вывести их?
Иными словами в таблице два одинаковых числа, вывести последнее

Последний раз редактировалось Mat Bourn; 21.05.2015 в 18:25.
Mat Bourn вне форума Ответить с цитированием
Старый 21.05.2015, 18:33   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Любая СУБД не имеет средств выбрать "последнюю" запись среди одинаковых по некой колонке, используя только информацию этой колонки. Вот строя, например, индекс по другим полям можно выбрать первую или последнюю согласно этого индекса в группе записей с одинаковым значением поля
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.05.2015, 18:36   #5
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

Значит нужно еще какой нибудь уникальный номер добавить?
Mat Bourn вне форума Ответить с цитированием
Старый 21.05.2015, 18:39   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да... В общем не морочь голову. Выбирай всю последовательность, а потом:
Код:
With ADOQuery do begin
 Last;
 if FieldByName('Пользователи').AsInteger<>1 then begin
  while findprior do if FieldByName('Пользователи').AsInteger=1 then begin
   Че то делаем;
   break;
  end;
 end else begin
   Че то делаем;
 end; 
end;
Че то делаем; - Значит мы стоим на нужной записи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2015, 18:41   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Не факт, что тот last будет нужным ластом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.05.2015, 18:43   #8
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

Спасибо за помощь Аватар и Stilet.

Последний раз редактировалось Mat Bourn; 21.05.2015 в 18:45.
Mat Bourn вне форума Ответить с цитированием
Старый 21.05.2015, 18:46   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не факт, что тот last будет нужным ластом
Почему?...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2015, 19:00   #10
Mat Bourn
Форумчанин
 
Регистрация: 13.04.2015
Сообщений: 140
По умолчанию

А что если написать такой запрос:

Код:
SELECT max( NewIndices ) AS NewIndices FROM IndicatorsGas where id_PayerGasStore = 1;
Будет ли это правильным ?
Получается он мне находит максимальный показатель первого пользователя. И потом по этой цифре узнать и старый.

Последний раз редактировалось Mat Bourn; 21.05.2015 в 19:03.
Mat Bourn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с запросом sql sery80 SQL, базы данных 8 18.11.2014 21:29
Помогите с SQL-запросом! lordaleksej БД в Delphi 2 03.12.2009 22:55
Помогите с SQL-запросом FleshDro SQL, базы данных 15 28.07.2009 13:32
Помогите с SQL запросом DDmitriy Microsoft Office Access 4 07.05.2009 15:51
SQL. Помогите с запросом. fluxion БД в Delphi 2 27.12.2007 08:01