【发布时间】:2017-12-14 22:07:02
【问题描述】:
我有一些看起来像这样的表格:
表1
Column1
A
B
C
表2
column1 Id1 Id2
A 2 100
A 3 101
B 2 100
B 3 101
C 2 100
表3
Id2 Date Item Status
100 10/20/17 A1 A
101 10/21/17 A1 A
100 11/22/17 A2 I
101 11/23/17 A2 A
我的查询如下所示:
Select
Date, *
FROM TABLE1 T1
LEFT JOIN Table2 T2 ON
T1.Column1 = T2.Column2
LEFT JOIN Table3 T3 ON
T2.Id2 = T3.Id2
我想将表 3 中状态为 A 的最旧日期返回到查询中的日期列中。
我能够使用此查询返回最旧的日期,但无法通过连接将其集成到我的查询中。
SELECT
MIN(DATE)
FROM Table3
WHERE Id2 IN (100,101)
AND STATUS = 'A'
group by Id2, ITEM
如何在使用连接子句的查询中获取最早的日期?
【问题讨论】:
-
不清楚您在这里要做什么。给定您的样本数据,您希望输出什么?
-
您的查询看起来存在根本缺陷。
T1.Column1 = T2.Column2和T2.Id2 = T3.Id3的连接条件,因为它们引用了不存在的列(分别为T2.Column2和T3.Id3)。你真的要使用T1.Column1 = T2.Column1和T2.Id2 = T3.Id2吗? -
"我想将表 3 中状态为 A 的最旧日期返回到我查询的日期列中。" -- 这是否意味着您只想返回状态为 A 的行中最旧的日期?为什么需要 Table3 之外的表?
-
如果我们不知道您想要什么,没有人可以帮助您。这是如何提问的指南。 stackoverflow.com/help/how-to-ask
标签: sql sql-server