假设我有桌子
table :: tbl_group_txn
GroupName Indvd_id effective_date amount
--------------------------------------------------------------
JPN001 001 2015-11-13 00:00:00.000 70,000
JPN001 002 2015-11-13 00:00:00.000 80,000
JPN001 003 2015-11-16 00:00:00.000 90,000
JPN001 004 2015-11-16 00:00:00.000 75,000
JPN001 005 2015-11-29 00:00:00.000 100,000
JPN001 006 2015-11-29 00:00:00.000 125,000
CHN001 007 2015-11-29 00:00:00.000 60,000
CHN001 008 2015-11-15 00:00:00.000 70,000
CHN001 009 2015-11-15 00:00:00.000 70,000
CHN001 010 2015-11-18 00:00:00.000 40,000
--------------------------------------------------------------
我的要求是使用 MAX(effective_date)行获取日期到今天的日期和所有大于今天日期的行。< / p>
如果组 JPN001 ,则rowid 3,4的最大日期到今天的日期,而rowid 5,6的日期大于今天的日期。
类似于 CHN001 组,rowid 10的最大日期为今天日期,而rowid 7的日期大于今天的日期。
所以输出将是::
GroupName Indvd_id effective_date amount
--------------------------------------------------------------
JPN001 003 2015-11-16 00:00:00.000 90,000
JPN001 004 2015-11-16 00:00:00.000 75,000
JPN001 005 2015-11-29 00:00:00.000 100,000
JPN001 006 2015-11-29 00:00:00.000 125,000
CHN001 007 2015-11-29 00:00:00.000 60,000
CHN001 010 2015-11-18 00:00:00.000 40,000
--------------------------------------------------------------
请建议我如何实现这一目标?
答案 0 :(得分:1)
在查询的第一部分中,我得到的有效行数等于MAX_idate的所有行直到今天(具有固定的组名)并且使用OR条件,我得到所有行的有效_date&gt;今天的日期
试试这个:
SELECT T.*
FROM mytable T
WHERE T.effective_date =
(SELECT MAX(T2.effective_date)
FROM mytable T2
WHERE T2.groupname = T.groupname
AND T2.effective_date <= GETDATE())
OR T.effective_date > GETDATE()
答案 1 :(得分:0)
InputStream inputStream = ContactsContract.Contacts.openContactPhotoInputStream(getApplicationContext().getContentResolver(),
ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, new Long(idValue)), true);