我想加入两个观点。我加入了三个要素,日期,病例编号和外科医生编号。每一个都应该只有一个与上一个case out值匹配,但是在我的左连接之后我得到了多行。
这是我的代码:
CREATE VIEW [dbo].[OR]
AS
SELECT DISTINCT
[ID].*,
[BYSURG].[PREV_PAT_OUT] AS PrevPtOut
FROM
[dbo].[OR_LOG_INDEXED] [ID]
LEFT JOIN
[DBO].[OR_CASE_NUM] BYSURG ON [ID].[SURG_DT] = [BYSURG].[SURG_DT]
AND [ID].[SURGEON_ID] = [BYSURG].[SURGEON_ID]
AND [ID].[CASE_NUM_BY_ROOM] = [BYSURG].[CASE_NUM_BY_ROOM_ADJ]
任何见解都值得赞赏。
谢谢!
M
答案 0 :(得分:0)
用一个检索所有列的选择块替换您的选择块:
SELECT
*
FROM
[dbo].[OR_LOG_INDEXED] [ID]
LEFT JOIN
[DBO].[OR_CASE_NUM] BYSURG ON [ID].[SURG_DT] = [BYSURG].[SURG_DT]
AND [ID].[SURGEON_ID] = [BYSURG].[SURGEON_ID]
AND [ID].[CASE_NUM_BY_ROOM] = [BYSURG].[CASE_NUM_BY_ROOM_ADJ]
运行它并查看您的“重复”行-有关它们的内容将不再重复-也许您忘记了在where子句中包含其他条件
在选择块中放置DISTINCT并不是答案-找出有关“重复”行的哪些数据元素不同,然后过滤掉不需要的行