SQL列出所有具有实际所有者的公寓
我正试图使用一个查询来列出所有实际拥有者的公寓 我的公寓桌子是这样的:SQL列出所有具有实际所有者的公寓,sql,openedge,progress-db,Sql,Openedge,Progress Db,我正试图使用一个查询来列出所有实际拥有者的公寓 我的公寓桌子是这样的: building | apartmentNbr | owner | start | end b1 | a1 | o1 | 2009-08-13 | 2010-08-13 b1 | a1 | o2 | 2010-08-14 | 2019-01-01 b1 | a2 | o3 | 2009-0
building | apartmentNbr | owner | start | end
b1 | a1 | o1 | 2009-08-13 | 2010-08-13
b1 | a1 | o2 | 2010-08-14 | 2019-01-01
b1 | a2 | o3 | 2009-01-03 | 2010-01-03
b1 | a2 | o4 | 2010-01-04 | 2010-08-13
b1 | a2 | o5 | 2010-08-14 | 9999-12-31
b1 | a3 | o6 | 2010-08-14 | 2019-12-31
b1 | a3 | o7 | 2020-02-14 | 9999-12-31
b2 | b1 | o8 | 2012-08-14 | 9999-12-31
...
building | apartmentNbr | owner
b1 | a1 | null
b1 | a2 | o5
b1 | a3 | null
b2 | b1 | o8
带着我的疑问
SELECT *
FROM Appartments
WHERE CURDATE() BETWEEN startDate AND endDate
我只拥有有人居住的公寓,但我也希望有这样的免费公寓:
building | apartmentNbr | owner | start | end
b1 | a1 | o1 | 2009-08-13 | 2010-08-13
b1 | a1 | o2 | 2010-08-14 | 2019-01-01
b1 | a2 | o3 | 2009-01-03 | 2010-01-03
b1 | a2 | o4 | 2010-01-04 | 2010-08-13
b1 | a2 | o5 | 2010-08-14 | 9999-12-31
b1 | a3 | o6 | 2010-08-14 | 2019-12-31
b1 | a3 | o7 | 2020-02-14 | 9999-12-31
b2 | b1 | o8 | 2012-08-14 | 9999-12-31
...
building | apartmentNbr | owner
b1 | a1 | null
b1 | a2 | o5
b1 | a3 | null
b2 | b1 | o8
如何解决此问题?请按
分组。使用case
表达式获取当前所有者(或null)
请用您使用的数据库标记您的问题。您使用的是MySQL吗?我使用ODBC连接到进度数据库如果我想获取日期,我必须添加更多的事例?是的,您可以。或者做一个自我连接。