【发布时间】:2014-11-11 20:45:02
【问题描述】:
我有一个查询,我精简为我正在尝试做的一个非常基本的示例。
我的问题是我在我的工具上创建了一个动态的WHERE 子句,但甚至无法让下面的简单选择起作用。
我有一个名为BS_TrainingEvent_Segments 的表,其中包含培训事件。一个事件可以有多个片段。我的外部 Where 子句需要能够同时查询内部和外部选择,但在它所在的位置,它只是说 B cannot be bound。
SELECT A.[teSegmentID],
A.[trainingEventID],
A.[segmentDate],
A.[nonProdHrs],
(
SELECT B.[recordID],
B.[segmentID],
B.[localeID],
B.[teammateCount],
B.[leaderCount]
FROM dbo.BS_TrainingEvent_SegmentDetails AS B
WHERE A.teSegmentID = segmentID
FOR XML PATH ('detail'), TYPE, ELEMENTS, ROOT ('details')
) AS B
FROM [red].[dbo].[BS_TrainingEvent_Segments] AS A
WHERE A.[teCategory] = 'Food' AND B.[localeID] = '462'
FOR XML PATH ('data'), TYPE, ELEMENTS, ROOT ('root')
【问题讨论】:
-
看起来应该没问题。你能创建一个 sqlfiddle 吗?
-
看起来你不能在 WHERE 子句中有 B.[LocaleID] 因为没有这样的列 LocaleID 存在。您将其引用为 Derived 列,在这种情况下不是。 B 只是一列而不是表格。
-
这就是我的问题。如何从外部 where 子句中的内部 select 查询数据?
标签: sql sql-server tsql stored-procedures