Если вы новичок в SQL, вам нужно понимать объединения таблиц и подзапрос. Я сделаю это один шаг за раз, надеюсь, это поможет.
SQL для создания и заполнения таблиц:
IF OBJECT_ID('tempdb..#tmpTable1') IS NOT NULL
/*Then it exists*/
DROP TABLE #tmpTable1
CREATE TABLE #tmpTable1 (
code varchar(4) not null,
ItemNo smallint not null )
insert into #tmpTable1 VALUES('A', 12345)
insert into #tmpTable1 VALUES('A', 12346)
insert into #tmpTable1 VALUES('A', 12347)
insert into #tmpTable1 VALUES('A', 12348)
insert into #tmpTable1 VALUES('B', 12349)
insert into #tmpTable1 VALUES('B', 12350)
insert into #tmpTable1 VALUES('B', 12351)
insert into #tmpTable1 VALUES('B', 12352)
insert into #tmpTable1 VALUES('C', 12353)
insert into #tmpTable1 VALUES('C', 12354)
insert into #tmpTable1 VALUES('C', 12355)
insert into #tmpTable1 VALUES('C', 12356)
IF OBJECT_ID('tempdb..#tmpTable2') IS NOT NULL
/*Then it exists*/
DROP TABLE #tmpTable2
CREATE TABLE #tmpTable2 (
ItemNo smallint not null,
Value varchar(4) not null )
insert into #tmpTable2 VALUES(12345, 'S')
insert into #tmpTable2 VALUES(12346, 'S')
insert into #tmpTable2 VALUES(12347, 'I')
insert into #tmpTable2 VALUES(12348, 'B')
insert into #tmpTable2 VALUES(12349, 'I')
insert into #tmpTable2 VALUES(12350, 'S')
insert into #tmpTable2 VALUES(12351, 'S')
insert into #tmpTable2 VALUES(12352, 'S')
insert into #tmpTable2 VALUES(12353, 'S')
insert into #tmpTable2 VALUES(12354, 'S')
insert into #tmpTable2 VALUES(12355, 'S')
insert into #tmpTable2 VALUES(12356, 'S')
SQL для вашего первого условия: «получить код из таблицы 1, передав ItemNo в предложение where»
выберите t1.code из # tmpTable1 t1
где t1.ItemNo = 12350
Результат:
код
B
SQL, чтобы добавить ваше второе условие, "извлечь все ItemNo, которые связаны с этим кодом"
Используйте исходный запрос как подзапрос.
select t1.ItemNo from #tmpTable1 t1
where t1.code = (
select t1.code from #tmpTable1 t1
where t1.ItemNo = 12350 )
Результат:
Предмет номер
12349
12350
12351
12352
SQL, чтобы добавить ваше второе условие "и если код имеет только значение = S"
Присоединитесь к Таблице 2, добавьте 'S' к где.
«Напечатайте это ItemNo и код», добавьте код к выбору
select t1.ItemNo, t1.code from #tmpTable1 t1
inner join #tmpTable2 t2 on t2.ItemNo = t1.ItemNo
where t1.code = (
select t1.code from #tmpTable1 t1
where t1.ItemNo = 12350 )
and t2.Value = 'S'
Результат:
Код товара
12350 В
12351 Б
12352 B