Форум программистов, компьютерный форум, киберфорум
Наши страницы

Microsoft SQL Server

Войти
Регистрация
Восстановить пароль
 
krupa
106 / 106 / 27
Регистрация: 13.12.2010
Сообщений: 407
#1

Создать запрос с условием, которое вводит пользователь - SQL Server

18.12.2011, 01:49. Просмотров 921. Ответов 2
Метки нет (Все метки)

Вот делаю лабораторную, такое задание

4. Перечислить поставщиков, поставляющих хотя бы одну деталь заданного списка (список задать самостоятельно через запрос).

понятия не имею как делать, как искать это в интернете.
то есть, я пишу запрос, нажимая выполнение выскакивает окошко, где я ввожу данные и выполняется сам запрос.

каким образом это происходит. объясните пожалуйста

Добавлено через 14 минут
вот так вот))

SQL
1
SELECT * FROM DETAL WHERE NAIM=:PLACE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2011, 01:49
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создать запрос с условием, которое вводит пользователь (SQL Server):

Запрос с условием - SQL Server
Доброго времени суток! Есть запрос с условием: SELECT * FROM Table1 WHERE Field1 = 'X' Есть ли значение условия при котором будут...

Запрос с условием - SQL Server
Всем привет. Такая проблема. У меня есть таблица, состоящая из полей: Авторы, Название, Описание, Год выхода. Мне нужно написать селект,...

Запрос на выборку с условием or - SQL Server
Здравствуйте" Подскажите как реализовать правильно такой запрос: select * tur where id_strana=1 and otel=1 or otel=2 or otel=3" ; ...

Запрос с условием на дату - SQL Server
Здравствуйте! Нужно сделать запрос из таблицы, в которой есть столбец Дата Рождения на вывод строк, в которых Дата Рождения между 04 и 09...

Запрос с условием и разрывом - SQL Server
здравствуйте . работаю с базой mssql. столкнулся с такой ситуацией--вот рисунок вот такая задача надо запросить интервалы (from,to)...

Запрос на представление с условием - SQL Server
трям всем доброй ночи...есть проблемка делаю запрос на представление с условием... хочу вывести все записи из одной таблицы которых нет во...

2
homich77
77 / 77 / 4
Регистрация: 06.04.2009
Сообщений: 326
19.12.2011, 19:42 #2
Если говорить просто о работе sql без всяких подключений к нему с помощью С#, asp.net...
то
объявление переменной пишется так:
SQL
1
DECLARE @peremennaya VARCHAR(512)
то есть на данной этапе вы можете создать переменную, которая будет принимать список идентификаторов деталей, к примеру
ну а там уже (для разбиения в базе строки в список у меня есть процедура):
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
CREATE    PROCEDURE [dbo].[pIntParsing]
  @pIDLstMovPrd  VARCHAR(2000),          -- строка, которую нужно сделать списком
  @pR VARCHAR(1)                                -- разделитель
AS
BEGIN Tran
 
CREATE TABLE #table (IDLstMovProduct INT)
 
--парсим строку pIDPartnerUse **************************************************************************************
DECLARE @str1 VARCHAR(2000)
DECLARE @str2 VARCHAR(2000)
DECLARE @pos INT
 
SET @str1=IsNull(@pIDLstMovPrd,'0')
SET @pos=charindex(@pR,@str1)
 
while IsNULL(@pos,0)>0
BEGIN
  SET @str2=SUBSTRING(@str1,1,@pos-1)
  INSERT INTO #table(IDLstMovProduct) VALUES (CAST(@str2 AS INT))
  SET @str1=SUBSTRING(@str1,@pos+1,len(@str1))
  SET @pos=charindex(@pR,@str1)
END
 
IF CAST(@str1 AS VARCHAR(2000)) <>''
BEGIN
  INSERT INTO #table (IDLstMovProduct) VALUES (CAST(@str1 AS INT) )
END
 
 
--распарсили************************************************************************************************************
SELECT IDLstMovProduct FROM #table
DROP TABLE #table
 
Commit Tran
Добавлено через 7 минут
не очень понятно, есть ли у вас диаграмма базы данных. в двух словах:
есть таблица Post (поставщиков) и таблица Detail (деталей). Отношение скорее всего М:М (многое к многому), то есть любой из поставщиков может возить любой из товаров. Для этого создается еще одна таблица , пусть будет называться Svod (сводная).
Получаем:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE TABLE Post(
IDPost PRIMARY KEY,
NamePost VARCHAR(512)
)
Полей может быть столько, сколько вам нужно.
CREATE TABLE Detail(
IDDetail PRIMARY KEY,
NameDetail VARCHAR(512)
)
 
CREATE TABLE Svod(
ID PRIMARY KEY,
IDPost INT FOREIGN KEY REFERENCES Post NOT NULL, 
IDDetail INT FOREIGN KEY REFERENCES Detail NOT NULL
)
Вот у нас есть 3 таблицы, описанные выше. Теперь собственно запрос

Добавлено через 6 минут
SQL
1
2
3
4
5
6
7
8
9
10
11
12
DECLARE @spisok VARCHAR(512)
SET @spisok = '1|2|5'     -- задаваемый список нами
-- создаем временную таблицу для получения списка идентификаторов деталей
CREATE TABLE #t(ID INT)
    
INSERT INTO #t
EXEC pIntParsing @spisok, '|'
 
SELECT Post.*
FROM Post INNER JOIN Svod ON Post.IDPost = Svod.IDPost
 
DROP TABLE #t
Все inner join - объединяет две таблицы только по существующим данным. То есть , если есть хотя бы одна запись в таблице Svod с текущим поставщиком - значит есть как минимум одна деталь, связанная с ним
2
krupa
106 / 106 / 27
Регистрация: 13.12.2010
Сообщений: 407
20.12.2011, 02:18  [ТС] #3
большое спасибо за продуктивный и полезный ответ
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 02:18
Привет! Вот еще темы с ответами:

Запрос с условием выбора таблицы - Базы данных
Имеется таблица, в которой поля указывают на значения полей из других таблиц. Грубо говоря, так: Table1 (int field1, int field2, int...

SQL запрос со сложным условием - Базы данных
Здравствуйте. Задача в упрощенном виде следующая. Есть таблица, с полями: &quot;Час&quot;, &quot;Значение&quot; и &quot;Наличие&quot;. Мне необходимо сгруппировать...

Запрос с условием совпадений первых символов - Базы данных
Допустим есть таблица машин: ID Name 001300 BMW 001451 Audi 190944 Opel и тд. Необходимо получить только...

SQL - запрос с условием уникальности(однозначности) одного из полей - SQL Server
Добрый день... Весь день ломаю голову как написать запрос... Суть проблемы: к примеру есть таблица (котроля действий пользователей...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru