Мне нужно объединить, как показано ниже, но я хочу сделать это только в том случае, если таблица dbo.Problem имеет значение 1 в столбце IsValid. dbo.Problem связана с dbo.delivery от dbo.Problem.ID = dbo.Delivery.IssueID.Таблица слияния связанной таблицы содержит значение sql
merge [dbo].[Delivery] as D
using [ReportSvr].[Report].[dbo].[Delivery] as LinkD
on (D.[ID] = LinkD.[ID])
WHEN NOT MATCHED BY TARGET
THEN INSERT(
[ID]
,[IssueID]
,[column2]
,[column3]
)
VALUES(
[ID]
,[IssueID]
,[column]
,[column]
);
GO
ли пытался что-то подобное;
select d.IssueID, i.IsValid
From Delivery d
left join (Select* From Issue where IsValid = 1) i
on d.IssueID = i.ID
с первого шага должен быть в состоянии запрашиваемых строк.
Выход:
IssueID IsValid
1 1
2 NULL
6 NULL
7 1
8 1
9 1
10 NULL
Как вы видите, у меня не очень ....
Я новый (второй день) в SQL, извините, если это простая задача, которую я должен знать около.
Надеюсь, вы в состоянии мне помочь.
Если вы не используете MySQL, то вы должны удалить этот тег. –
Вы использовали/Упомянули разные таблицы в своем вопросе, а затем 'Merge', а затем' select statements'? На каких таблицах вы действительно работаете, и что именно вы пытаетесь сделать? '[dbo]. [Delivery]', '[ReportSvr]. [Report]. [dbo]. [Доставка]', 'dbo.Issue'. Также где находится столбец 'IsValid' в' dbo.Problem' или 'dbo.Issue' –
Извините, если я не был чист. Мне нужно объединить две таблицы, как показано на первом снимке, но я хочу только объединить строку из [ReportSvr]. [Report]. [Dbo]. [Delivery], где значение IsValid = 1 в [ReportSvr]. [ Report]. [Dbo]. [Issue] две таблицы связаны [Delivery]. [IssueID] = [Issue]. [ID]. – Lauge