1 / 4 / 1
Регистрация: 06.01.2014
Сообщений: 427
1

SQL запрос поиск разных значений идет в одном и том же поле

07.05.2016, 19:08. Показов 1623. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Задача такая. Есть некая таблица. Нужно создать такой запрос, что бы два значения отыскать в одном поле. А потом по этим двум значениям в следующим поле вывести в переменных два значения массовой концентрации, и в следующем поле в другие переменные вывести так же плотности по двум значениям.

SQL
1
2
3
4
THEN BEGIN
    qrVolume.SQL.Text := 'select * from ALCO where '+
     'OB between '+ FloatToStr(v )+ ' and ' + FloatToStr(v + 7)+ ' or '+
     'OB between '+ FloatToStr(d )+ ' and ' + FloatToStr(d + 7);
запрос работает вроде но данные не точны..если сравнивать с таблицей.

Delphi
1
2
3
 qrVolume.Open;
     if not qrVolume.Eof then begin 
    Ob_k1:= qrVolume['MA'];
далее в поле МА (масса) по найденному значению выуживает массу.
Ob_k2:= qrVolume['MA'];
Вообще возможно ли отыскать два значения в одном поле?
Миниатюры
SQL запрос  поиск разных значений идет в одном и том же поле  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.05.2016, 19:08
Ответы с готовыми решениями:

SQL запрос: в первом поле идет число, с которого начинается пропуск; во втором - количество пропущенных чисел
Доброго времени суток. Столкнулся с проблемой, связанной с SQL запросом. Запрос сл. вида: имеется...

Отображение разных опций в одном и том же окне
Здравствуйте. Подскажите, пожалуйста, следующее программное решение. Есть основная форма с...

SQL- запрос. Поиск одинаковых значений полей в таблицах
Добрый день! Есть 3 таблицы: 1.проданные товары, 2.продавец, 3.покупатель: Продавцы....

Создание поля с множесством значееений в одном поле т.е. преобразование столбца или строки с множеством значений в одном
Добрый день господа программисты. дернул меня черт создать базу данных в Access до сегодняшнего...

6
1 / 4 / 1
Регистрация: 06.01.2014
Сообщений: 427
07.05.2016, 19:18  [ТС] 2
Есть значения. Объемная концентрация спирта: 70 и 69%. По таблице это 70,5 и 69. Нужно что бы запрос учитывал это. Далее 70,5------>массовая концентрация 44, плотность 0,8856. И 69------> массовая концентрация 13, плотность 0,8838. Все эти данные нужно найти.
0
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
07.05.2016, 19:21 3
SQL
1
2
3
SELECT * FROM T WHERE SPIRT=70 AND MASS=44
UNION ALL
SELECT * FROM T WHERE SPIRT=69 AND MASS=13
0
1 / 4 / 1
Регистрация: 06.01.2014
Сообщений: 427
07.05.2016, 19:28  [ТС] 4
Цитата Сообщение от qwertehok Посмотреть сообщение
SQL
1
2
3
SELECT * FROM T WHERE SPIRT=70 AND MASS=44
UNION ALL
SELECT * FROM T WHERE SPIRT=69 AND MASS=13
но 70 и 69 это пример. Есть два Edit в них вносятся любые цифры. Масса же находится автоматом и вносится в переменную от этих двух цифр, которые вбиваются в Едит.
0
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
07.05.2016, 19:47 5
Лучший ответ Сообщение было отмечено xxx_73 как решение

Решение

я могу ответить на вопрос
но если вопроса нет, то я не знаю на что мне отвечать

в чем у вас проблема?
получить данные из эдита в запрос?

вот пример 1
Delphi
1
query.sql.text:='select  * from T where SPIRT='+Edit1.Text+' or SPIRT='+Edit2.Text;
вот пример 2
Delphi
1
2
3
query.sql.text:='select  * from T where SPIRT=:sp1 or SPIRT=:sp2';
query.parameters.parambyname[':sp1'].value:=edit1.text;
query.parameters.parambyname[':sp2'].value:=edit2.text;
как 3 посоветую написать процедуру и делать так
Delphi
1
2
3
query.sql.text:='select  * from my_procedure(:sp1,:sp2)';
query.parameters.parambyname[':sp1'].value:=edit1.text;
query.parameters.parambyname[':sp2'].value:=edit2.text;
а уже в самой процедуре отбираете все что вам нужно
0
1 / 4 / 1
Регистрация: 06.01.2014
Сообщений: 427
07.05.2016, 20:58  [ТС] 6
Ответ нашел сам.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 if StrToInt(Edit5.Text, V1) then begin
    qrVolume.SQL.Text := 'select * from ALCO where '+
           'OB between '+ IntToStr(v + 7)+' and '+ IntToStr(v - 7);
    qrVolume.Open;
    if not qrVolume.Eof then begin //здесь получаешь нужные значения
      Ob_k1 := qrVolume['MA'];     //массу
      Ma_k1 := qrVolume['...'];    //и выбираешь плотность
    end;
    qrVolume.Close;
  end;
 if StrToInt(Edit5.Text, V2) then begin
    qrVolume.SQL.Text := 'select * from ALCO where '+
           'OB between '+ IntToStr(v + 7)+' and '+ IntToStr(v - 7);
    qrVolume.Open;
    if not qrVolume.Eof then begin //здесь получаешь нужные значения
      Ob_k2 := qrVolume['MA'];     //массу
      Ma_k2 := qrVolume['...'];    //и выбираешь плотность
    end;
    qrVolume.Close;
  end;
0
5393 / 4321 / 1060
Регистрация: 29.08.2013
Сообщений: 27,128
Записей в блоге: 3
07.05.2016, 21:07 7
я же вам показал - это можно через UNION сделать одним запросом

единственное - если у вас вернется не одна строка, а несколько. ошибки то в дельфи не будет, но это вроде как не обрабатывается у вас
1
07.05.2016, 21:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.05.2016, 21:07
Помогаю со студенческими работами здесь

SQL-запрос на поиск одинаковых значений полей в одной таблице?
Как найти записи в которых значения некоторых полей одинаково? Например поля с ФИО.

Замедленное появление/исчезание трёх разных текстов на одном и том же месте
Это моя первая тема как новичка. Поскольку в интернете не нашёл прямого ответа на такой вопрос,...

Как сделать так, чтобы на одном и том же сайте у разных аккаунтов были разные ip?
Снова я, прошу извинить, ибо я не знала куда свой вопрос впихнуть, cо своими вопросами. Как сделать...

Запрос на разницу значений при отсутствии нескольких показателей в одном из значений
Добрый вечер! Прошу прощения за возможно глупый вопрос, но для меня это действительно проблема(...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru