Запрос с подзапросом.

Есть БД с одной таблицой. В таблице этой находятся габариты тела (высота/длина/ширина). Я провожу поиск по этой таблице вот таким способом: (не обращайте внимания на то в каком виде код, просто запрос этот используется в приложении WinForms с использование библиотеки Npgsql)

sql = "SELECT * FROM parts WHERE 
height>" + minH + " AND height<" + maxH + " 
AND length>" + minL + " AND length<" + maxL + "
 AND width>" + minW + " AND width<" + maxW + ";";

вот описание переменных в этом запросе.
            string minH = (Height - Height * percent / 100).ToString().REPLACE(',', '.');
            string maxH = (Height + Height * percent / 100).ToString().REPLACE(',', '.');
            string minL = (Length - Length * percent / 100).ToString().REPLACE(',', '.');
            string maxL = (Length + Length * percent / 100).ToString().REPLACE(',', '.');
            string minW = (Width - Width * percent / 100).ToString().REPLACE(',', '.');
            string maxW = (Width + Width * percent / 100).ToString().REPLACE(',', '.');

Для чего это все: Пользователь вводит нужные ему габариты детали а так же допустимое отклонение для этих габаритов.
Мне же нужно с результатом этого запроса провести еще один поиск по той же таблице :
Вот как этот запрос выглядит :
   sql = "SELECT * FROM parts where height/length>" + MinK1 + "AND height/length<" + MaxK1 + "
AND height/width>" + MinK2 + "AND height/width<" + MaxK2 + ";";

где
string MinK1=((Height/Length)-(Height/Length)*percent/100).ToString().REPLACE(',', '.'); 
            string MaxK1=((Height/Length)+(Height/Length)*percent/100) .ToString().REPLACE(',', '.'); 
            string MinK2=((Height/Width)-(Height/Width)*percent/100).ToString().REPLACE(',', '.');
            string MaxK2 = ((Height / Width) + (Height / Width) * percent / 100).ToString().REPLACE(',', '.');

Этот запрос работает , но с теми данными что я веду для поиска.
Подскажите как правильней сделать . Очень сильно запутался с этим всем.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Имеется в виду что уже для

Имеется в виду что уже для переменных MinK1 MaxK1 MinK2 MaxK2 будут не те данные что ввел пользователь а уже те что получены из первого запроса .Тоисть для каждого результата первого запроса получалось значение (высота/длину)-(высота/длину)* отклонение в процентах/100 и так далее .
Это нужно функцию делать или можно просто создать в переменные и дальше ими манипулировать?
Эта строка будет использоваться в классе NpgsqlCommand(connection,sql)

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023