You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by Sophia <jd...@telenet.be> on 2008/06/19 14:54:48 UTC

Problem with my query.

Hallo everyone, 

I have a problem with my query, can someone help me further
This is the query that I want to use in ibatis.

select * from ACCOUNT where NUMBER in
(select NUMBER from ACCOUNT where substr(ACCOUNT,5,4) between '2002' and '2006’)


This is my source:


try {
dao.ACCOUNTDAO accountList2Dao = (dao.ACCOUNTDAO)DaoManagerRequester.getDaoManager().getDao(dao.ACCOUNTDAO.class);
model.ACCOUNTExample account2Example = new model.accountExample();    
     
List resultList6 = accountList2Dao.selectByAccountList2(account2Example);
account2Example.createCriteria().andNumberDateBetween(startdate, enddate);
    	  
List resultList6 = accountList2Dao.selectByAccountList2(account2Example);    	
...

} catch ...


This works, and it gives me this:

select * from ACCOUNT where substr(ACCOUNT,5,4) between '2002' and '2006'


Any suggestions?
 

Regards,
Sophia




Re: Problem with my query.

Posted by Da...@ltx.com.
I'm not entirely sure what you're trying to do, as that query at the end 
of your message looks like a good solution to me.  It sounds like you are 
trying to do something more complicated.  Depending on your DBMS, you can 
try something like this:

select ACCOUNT.* from ACCOUNT,
        (select NUMBER from ACCOUNT where substr(ACCOUNT, 5, 4) between 
'2002' and '2006') NUM
where ACCOUNT.NUMBER = NUM.NUMBER

I'm sure any number of people can give you any number of ways to optimize 
this.  Is the error that you get coming from your DBMS or ibatis?

-David



From:
"Sophia" <jd...@telenet.be>
To:
user-java@ibatis.apache.org
Date:
06/19/2008 08:55 AM
Subject:
Problem with my query.



Hallo everyone, 

I have a problem with my query, can someone help me further
This is the query that I want to use in ibatis.

select * from ACCOUNT where NUMBER in
(select NUMBER from ACCOUNT where substr(ACCOUNT,5,4) between '2002' and 
'2006?)


This is my source:


try {
dao.ACCOUNTDAO accountList2Dao = 
(dao.ACCOUNTDAO)DaoManagerRequester.getDaoManager().getDao(dao.ACCOUNTDAO.class);
model.ACCOUNTExample account2Example = new model.accountExample(); 
 
List resultList6 = accountList2Dao.selectByAccountList2(account2Example);
account2Example.createCriteria().andNumberDateBetween(startdate, enddate);
 
List resultList6 = accountList2Dao.selectByAccountList2(account2Example);  
 
...

} catch ...


This works, and it gives me this:

select * from ACCOUNT where substr(ACCOUNT,5,4) between '2002' and '2006'


Any suggestions?
 

Regards,
Sophia