您的查询似乎有些问题,我认为应该是这样的:
SELECT q.ID,q.AMT1,q.AMT2 FROM
(SELECT ID as ID, NET_AMOUNT as AMT1 FROM TEST_TABLE WHERE DATE_BY >='2012-10-01' AND DATE_BY <='2012-10-31') q
JOIN (SELECT ID as ID ,NET_AMOUNT as AMT2 FROM TEST_TABLE WHERE DATE_BY >='2013-10-01' AND DATE_BY <='2013-10-31') r
on (q.ID=r.ID )
但是当您比较 DATES 时,正如 @Antariksha 指出的那样,您需要将其投射。
但我更喜欢更好的选择,以时间戳格式比较 DATE。因此,在这种情况下,您的查询将如下所示:
SELECT q.ID,q.AMT1,q.AMT2 FROM
(SELECT ID as ID, NET_AMOUNT as AMT1 FROM TEST_TABLE WHERE unix_timestamp(DATE_BY,"<your date patern>") >=unix_timestamp('2012-10-01',"YYYY-MM-DD") AND unix_timestamp(DATE_BY,"<your date patern>") <=unix_timestamp('2012-10-31',"YYYY-MM-DD")) q
JOIN (SELECT ID as ID ,NET_AMOUNT as AMT2 FROM TEST_TABLE WHERE unix_timestamp(DATE_BY,"<your date patern>") >=unix_timestamp('2013-10-01',"YYYY-MM-DD") AND unix_timestamp(DATE_BY,"<your date patern>") <=unix_timestamp('2013-10-31',"YYYY-MM-DD")) r
on (q.ID=r.ID )
希望对你有帮助...!!!