• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 636
  • Last Modified:

SQL query in SSRS

I am  workign on a SSRS report. I created a report which gets the records between two date ranges. This report has 2 date parameters.  The  report is  running with out any errors but for some reason even i use date range the data is not filtered. I mean i am tryin to see the data between 1st of this month to current date. The results are showing records  before the startdate parameters. That mean the filter is not  working. But still it does not give any error.
Please see the code  below
select * from ABC
where date between @StartDate and @EndDate

Open in new window

0
svs1919
Asked:
svs1919
  • 8
  • 7
1 Solution
 
catherinelouiseCommented:
Are the parameters you've created of a type DateTime, and is the 'Date' field from your table also a DateTime type?

Verify your query by hard-coding actual dates in there - when you know you are working with the right date type you can get your parameters to match.
0
 
svs1919Author Commented:
yes theya re  datetime Tpe. and i also tried to hard code the values int he query but still it dosent  filter
0
 
catherinelouiseCommented:
So the problem must be with querying the table rather than anything to do with the report parameters.  Are you able to share an example of data from your table?  Maybe we can figure out what the issue is from that.
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
svs1919Author Commented:
This is one of the example from my data.
City               State           Company              Date                                  
FULTON        KY             KFC, LLC             2007-07-18 00:00:00.000
0
 
catherinelouiseCommented:
Great.  Now if you were to write a query something like select * from table where date between '18-jul-2007' and '19-jul-2007' do you get that record back?

Can you confirm the date format you are using in the where clause?
0
 
svs1919Author Commented:
when i  ran it  using the above  query i got following error
Msg 4145, Level 15, State 1, Line 3
An expression of non-boolean type specified in a context where a condition is expected, near 'date'.
0
 
catherinelouiseCommented:
Hmm, I'm a little confused - at the risk of asking the obvious, I'm going to verify anyway , you wrote the query as described below and you get the above error?  Can you also try the other query I mention below

---Verify Between---
SELECT * from TableName
WHERE Date between '18-Jul-2007' and '19-Jul-2007'
 
--Verify Greater Than
SELECT * from TableName
WHERE Date >= '18-Jul-2007'
AND Date < '19-Jul-2007'

Open in new window

0
 
svs1919Author Commented:
yep this one worked in the  query

SELECT * from TableName
WHERE Date >= '18-Jul-2007'
AND Date < '19-Jul-2007'
0
 
catherinelouiseCommented:
Well it seems like for whatever reason, the 'between' clause is not working - I'm afraid I'm not smart enough to tell you why if you are using SQL 2005 as described.

However I would be inclined to change the sproc as I have below which should function in exactly the same way as BETWEEN.
select * from ABC
where date >= @StartDate 
and date <= @EndDate

Open in new window

0
 
svs1919Author Commented:
yep i tried this but still it is  not  working
0
 
svs1919Author Commented:
i think the reason why its  causing this problem  is i am using a like operator and that  might  be the reason for the problem

select * from table
where date Between @startdate  and @endDate
and column like 'ABC%'
or Column like ' xyz%'
0
 
catherinelouiseCommented:
Again, you should just test the query with hardcoded values.  If BETWEEN wasn't working in your tests above, then the last query you posted probably isn't going to work either.  

In theory using LIKE shouldn't be a problem.  Adapting your query for example's sake using your data above, does this return you data?  
Select * from table
where Date >= '18-Jul-2007'
AND Date < '19-Jul-2007'
AND (Company like 'KFC%'
OR Company like 'XYZ%')
 
---Then to verify 'Between' clause
 Select * from table
where Date between '18-Jul-2007' AND '19-Jul-2007'
AND (Company like 'KFC%'
OR Company like XYZ%')

Open in new window

0
 
catherinelouiseCommented:
Sorry a comma was missing in that last snippet
Select * from table
where Date between '18-Jul-2007' AND '19-Jul-2007'
AND (Company like 'KFC%'
OR Company like 'XYZ%')

Open in new window

0
 
svs1919Author Commented:
ok cool its  working now thanks for  you help
0
 
svs1919Author Commented:
Great Help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 8
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now