2016-10-27 8 views
0

Ich habe ein Textfeld und 3 Dropdown-Boxen mit einem Element, das in jedem der Dropdown-Menüs ausgewählt werden konnte. Es gibt zwei Filterszenarien, die ich erreichen möchte.Verwenden von und oder in einem sql für mehrere Ergebnisse

  1. Erhalten eines Filterergebnisses nach dem Eingeben eines Werts in das Textfeld und Auswählen von Werten in den nächsten beiden Textfeldern, wobei das letzte ausgelassen wird.

  2. Sie erhalten eine Filterung, nachdem Sie einen Wert in das Textfeld eingegeben und Werte in den anderen drei Dropdown-Feldern ausgewählt haben, um das Ergebnis herauszufiltern. Mein Code unten kann nur jedes der Ergebnisse eins nach dem anderen erzeugen Wenn ich das "und" zu "oder" und das "oder" zu "und" s ändere. Kann jemand mit Änderung oder neuer Frage helfen, um die zwei Szenarien zu erreichen?


CREATE PROC Spsearchproduct @searchWord1OnMasterPage NVARCHAR (50), 
          @searchWord2OnMasterPage NVARCHAR (50), 
          @searchWord3OnMasterPage NVARCHAR (50), 
          @searchWord4OnMasterPage NVARCHAR (50) 
AS 
    BEGIN 
     SELECT product.NAME, 
      price, 
      seller, 
      productstreetno.strno, 
      productstreet.streetname 
     FROM product 
      INNER JOIN productstreetno 
        ON product.streetnoid = productstreetno.idstreetno 
      INNER JOIN productstreet 
        ON product.streetid = productstreet.idstreet 
      INNER JOIN productstate 
        ON stateid = productstate.idstate 
      INNER JOIN productcity 
        ON cityid = productcity.idcity 
     WHERE product.NAME LIKE '%' + @searchWord1OnMasterPage + '%' 
      AND productstate.statename LIKE '%' + @searchWord2OnMasterPage + '%' 
      AND ((productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%') 
        OR (productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%') 
        OR (productstreet.streetname IS NULL)) 
      AND ((productcity.cityname LIKE '%' + @searchWord3OnMasterPage + '%') 
        OR (productstreet.streetname LIKE '%' + @searchWord4OnMasterPage + '%') 
        OR (productstreet.streetname IS NULL)) 
    END 
+0

Welche Parameterwert von TextBox und Drop-Down darstellen? –

+0

Vielen Dank JaydipJ. Sie sind alle String. –

Antwort

0
Product.Name Like '%' + @searchWord1OnMasterPage + '%' and 
    ProductState.StateName Like '%' + @searchWord2OnMasterPage + '%' and 
    (ProductCity.CityName Like '%' + @searchWord3OnMasterPage + '%')and 
    ((ProductStreet.StreetName Like '%' + @searchWord4OnMasterPage + '%') or 
    (@searchWord4OnMasterPage = 'Select Street')) 
+0

Die 'Straße auswählen' ist der Standardwert im Dropdown-Menü –

Verwandte Themen