NoClassDefFoundError В Java
Определение:
Примеры:
Возможные решения:
Ресурсы:
Вы можете попробовать это
Select table1.ItemNo, table1.Code, table2.Value from table1
inner join table2 on table1.ItemNo = table2.ItemNo
where table1.ItemNo = '12345'
Вы можете узнать это Присоединение к SQL Server
Быть новичком в 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 )
Результат: ItemNo 12349 12350 12351 12352
SQL для добавления вашего второго условия "и, если код имеет только значение = S" Присоединитесь к таблице 2, добавьте 'S' к где. «напечатать его номер элемента и код», добавьте код к выбранному
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 B 12351 B 12352 B
Я думаю, тебе нужно not exists
:
with cte as (
select t1.code, t1.itemno, t2.value
from table1 t1 inner join
table2 t2
on t1.itemno = t2.itemno
)
select c.*
from cte c
where not exists (select 1 from cte c1 where c1.code = c.code and c1.value <> 'S')