我遇到了一个问题,即使不使用代码而不是使用SQL SCRIPT,也无法解决问题。获取最大日期SQL复杂性
我有2个表
Person
ID Name Type
1 A A1
2 B A2
3 C A3
4 D A4
5 E A6
PersonHomes
HOMEID Location PurchaseDate PersonID
1 CA 20160101 1
2 CT 20160202 1
3 DT 20160101 2
4 BT 20170102 3
5 CT 20160303 1
6 CA 20160101 2
是PersonID是Person表的外键
有表
所以在没有其他rowz,我们已经表现出每个人提供家庭详细
写输出的规则是
- IF人在PersonHomes单一入口,然后用它
- 如果伤者已超过在PersonHomes一个条目接下来我们就来看看购买之日起,如果不同,那么在它最早日期使用PersonHomes ROW。并删除了他的其他行
- IF人在PersonHomes不止一个条目,然后我们来看看在购买日期和IF日期都相同,则使用行以较低的ID,然后删除HIM的
这是很容易在代码中做,但使用SQL它是复杂
我试过是
WITH PERSON (
SELECT * FROM Person)
SELECT * FROM PERSON
INNER JOIN PersonHomes ON Person.ID = PersonHomes.PersonID
WHERE PersonHomes.PersonID = CASE WHEN (COUNT (*) FROM PersonHomes...)
那么我想我可以写SQL函数?
我卡住了,请帮忙!
对person的
ID NAME Type HOMEID Location PurchaseDate
1 A A1 5 CT 20160303
示例输出某乙
ID NAME Type HOMEID Location PurchaseDate
1 A A2 3 DT 20160101
艾登
我删除了MySQL的标签,因为语法显然不是MySQL的。 –