Query with different WHERE clauses

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Cralis

    Query with different WHERE clauses

    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_aircraf t 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.[UserAircraftCom ponent] uac1 ON uac1.useraircra ftid =
    ua.id
    INNER JOIN dbo.[Component] c ON c.id = uac1.componenti d

    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_aircraf t 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.
  • Erland Sommarskog

    #2
    Re: Query with different WHERE clauses

    Cralis (admin@myschool mates.com) writes:
    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_aircraf t 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@sommarsk og.se

    Books Online for SQL Server 2005 at

    Books Online for SQL Server 2000 at

    Comment

    • Cralis

      #3
      Re: Query with different WHERE clauses

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

      Comment

      Working...