Connecting Tech Pros Worldwide Help | Site Map

Query with different WHERE clauses

  #1  
Old August 20th, 2008, 08:15 AM
Cralis
Guest
 
Posts: n/a
Hi guys.

I have a database of R/C Helicopters.

The user wants to filte down on a specific helicopter configuration.
So the GUI has a screen with 5 dropdownlists.

ESC (Electric Speed Controller), Motor, Gyro, Engine and Servo.

Lets say the user wants to find all helicopters using a Z80 motor. So,
he selects that from a drop down, and the rest remain as 'Select
one..'.

So I pass paramteres to my stored procedure....

sp_find_aircraft esc=0, motor=67, gyro=0, engine=0, servo=0
(67 being the ID of the component he wants to look up.. in this case,
the Z80 engine).

How do I create the where clause for this? My select looks like this:

SELECT ua.id, c.[Model]
FROM dbo.[UserAircraft] ua
LEFT JOIN dbo.[UserAircraftComponent] uac1 ON uac1.useraircraftid =
ua.id
INNER JOIN dbo.[Component] c ON c.id = uac1.componentid

I have no where clause yet, as I'm not sure how to handle dffering
selections.

In the above example, my where clause would simply be:

WHERE c.id = 67

And that would return me a correct recordset of all UserAircraft
having a Z80 engine.

But now the user wants a result with the Z80, as well as maybe a GY401
gyro... so now I pass:
sp_find_aircraft esc=0, motor=67, gyro=145, engine=0, servo=0

I kinda need a dynamic where clause....
Is this possible?

A kind of:
IF @gyro 0
add 'OR Componentid=145

type of thing.
  #2  
Old August 20th, 2008, 08:35 AM
Erland Sommarskog
Guest
 
Posts: n/a

re: Query with different WHERE clauses


Cralis (admin@myschoolmates.com) writes:
Quote:
Lets say the user wants to find all helicopters using a Z80 motor. So,
he selects that from a drop down, and the rest remain as 'Select
one..'.
>
So I pass paramteres to my stored procedure....
>
sp_find_aircraft esc=0, motor=67, gyro=0, engine=0, servo=0
(67 being the ID of the component he wants to look up.. in this case,
the Z80 engine).
>
How do I create the where clause for this? My select looks like this:
There are a couple of options, and I have an article (in two versions) on
my web site that discusses this in detail:
http://www.sommarskog.se/dyn-search.html.

By the way, do not use the sp_ prefix for your stored procedures. This
prefix is reserved for system procedures.


--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx
  #3  
Old August 20th, 2008, 08:35 AM
Cralis
Guest
 
Posts: n/a

re: Query with different WHERE clauses


Thanks Erland!
Agh! Forgot about the poor use of 'sp_'.
Foolish - will resolve, thanks.
Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
indexes and query optimization annroberti answers 1 April 3rd, 2007 07:22 PM
The column prefix 'MS1' does not match with a table or alias name used in the query. (#107) blue875@carolina.rr.com answers 6 June 5th, 2006 04:45 PM
Plea for help creating SQL query Susan M. answers 10 November 12th, 2005 07:25 AM
Difficult Query: is this possible in SQL? Robert Brown answers 22 July 20th, 2005 05:12 AM