我正在尝试用另一个表(Loc
)中的数据填充表(Test.dbo.ML
)。
应在[VALID_FROM]
字段中填充来自第三张表(Test.dbo.TEN
)的日期,该日期必须与第四张表(Test.dbo.ST
)相连才能确定哪个{{1 }}用于获取日期。这就是我的问题!
紧接N_ID
语句之后的[N_ID]
字段必须是联接的SELECT
子句中的s.N_ID
。我该怎么做?
我正在使用SQL Server2017。
我调查了where
和@@IDENTITY
,但这些似乎与我要解决的问题无关。
SCOPE_IDENTITY()
对于INSERT INTO [Loc] ([LOC_ID], [TYPE], [ADRESS], [POST_CODE],
[LAT], [LONG], [GEOMETRY], [VALID_FROM])
SELECT
[N_ID], 'some place', [ADDRESS], [FSALDU],
[COORDY], [COORDX], [GEOM],
(SELECT MIN(t.open_date)
FROM Test.dbo.TEN t
JOIN Test.dbo.ST s ON t.S_ID = s.S_ID
WHERE s.N_ID = 'problem is here!')
FROM
Test.dbo.ML
字段,我必须获取最早的可用日期,因此也要获取[VALID_FROM]
。
Test.dbo.TEN(S_ID,开放日期)
Test.dbo.ST(S_ID,N_ID)
Test.dbo.ML(N_ID,地址,FSALDU,COORDY,COORDX,GEOM)
这是一条插入语句,但是真正要解决的问题是获取要插入新表[Loc]中的正确N_ID的最早open_date!
答案 0 :(得分:0)
我认为您不需要在这里子查询...您可以直接将所有表连接起来
select m.[N_ID] ,'some place' ,[ADDRESS] ,[FSALDU] ,[COORDY] ,[COORDX] ,[GEOM] ,MIN(t.open_date)
from Test.dbo.ML m
join Test.dbo.ST on s.N_ID = m.n_ID
join Test.dbo.TEN t on t.S_ID = s.S_ID