我有6个表,其中5个表中的帐户作为公共密钥,id是所有这些表的公共密钥。
其中5个有4-5个日期字段。现在,我的任务是使用where条件找到表中记录的最大日期:id = 10,现在也可以在所有其他表中查找相同记录的最大日期。在所有的表中,没有像帐户那样的约束必须是相同的数字,对于所有不同的表中相同的id,它可以是不同的。
现在,我必须找到相应的帐户,其中有最大值。所有对应于传递的id值的日期值。
救命啊!!
发布于 2014-10-15 15:44:34
SELECT
max(convert varchar, acct.account_date, 101)
FORM
account acct
WHERE
acct.id = (SELECT acct.id FROM id_tlb WHERE acct.id = 'something') 您可能不需要在那里转换日期,但是它将帮助您获得时间戳的mm/dd/yyyy格式。
回复,如果你需要其他的东西。
发布于 2014-10-16 14:37:44
看看这个..。查询看起来很糟糕,因为我认为表的设计/需求冲突。
select max(dateB) AS max_date FROM
(
select max(dateA) AS dateB FROM
(
select date1 AS dateA from tb1 where id = 10
union
select date2 AS dateA from tb1 where id = 10
union
select date3 AS dateA from tb1 where id = 10
union
select date4 AS dateA from tb1 where id = 10
)
UNION
select max(dateA) AS dateB FROM
(
select date1 AS dateA from tb2 where id = 10
union
select date2 AS dateA from tb2 where id = 10
union
select date3 AS dateA from tb2 where id = 10
union
select date4 AS dateA from tb2 where id = 10
)
UNION
select max(dateA) AS dateB FROM
(
select date1 AS dateA from tb3 where id = 10
union
select date2 AS dateA from tb3 where id = 10
union
select date3 AS dateA from tb3 where id = 10
union
select date4 AS dateA from tb3 where id = 10
)
UNION
select max(dateA) AS dateB FROM
(
select date1 AS dateA from tb4 where id = 10
union
select date2 AS dateA from tb4 where id = 10
union
select date3 AS dateA from tb4 where id = 10
union
select date4 AS dateA from tb4 where id = 10
)
)发布于 2014-10-17 15:51:19
是的终于拿到了。
选择date1,帐户来自table1,其中id = 'X‘联合所有选择了date2,从table1中所有id = 'X’联合选择了date3,从table1选择了date4,从id = 'X‘联合中选择了date4,从table2选择了date5,从id = 'X’联合中选择了date6,从table2选择了id = 'X‘联合,从table2选择了id = 'X’联合,从table2选择了id = 'X‘联合,从table3选择了id=’X‘联合。
选择date8,table3中的帐户,其中id = 'X‘
由date1制定的订单限制1;
希望这会对其他人有所帮助。
https://stackoverflow.com/questions/26385000
复制相似问题