Busca lo que quieras

Única consulta para hacer filtros avanzados con SQL SERVER


Y esta es la consulta aplicada a un filtro de productos con SQL SERVER.

SELECT dbo.PRODUCTOS.nombre_pro, dbo.PRODUCTOS.identificacion_pro, dbo.PRODUCTOS.precio_pro, dbo.PRODUCTOS.descripcion_pro,
CASE WHEN dbo.CATEGORIAS.identificacion_cat <= 2  THEN 1 ELSE 0 END AS 'tipoProducto',
CASE WHEN dbo.CATEGORIAS.identificacion_cat <= 2  THEN 0 ELSE 1 END AS 'tipoAncheta'


FROM dbo.PRODUCTOS 
INNER JOIN dbo.SUBCATEGORIAS
ON dbo.PRODUCTOS.identificacion_sub = dbo.SUBCATEGORIAS.identificacion_sub 
INNER JOIN dbo.CATEGORIAS 
ON dbo.SUBCATEGORIAS.identificacion_cat = dbo.CATEGORIAS.identificacion_cat
WHERE
(dbo.CATEGORIAS.identificacion_cat = @identificacion_cat OR @identificacion_cat = 'todos' )
AND
(dbo.SUBCATEGORIAS.identificacion_sub = @identificacion_sub OR @identificacion_sub = 'todos' )
AND
(dbo.PRODUCTOS.descripcion_pro + '' + dbo.PRODUCTOS.nombre_pro + '' + SUBCATEGORIAS.nombre_sub + '' + CATEGORIAS.nombre_cat + '' + PRODUCTOS.identificacion_pro  like '%' + @busqueda + '%' OR @busqueda = 'Todos' )
AND
(dbo.PRODUCTOS.precio_pro >=  @filtroPrecioMenor OR @filtroPrecioMenor = -1 )
AND
(dbo.PRODUCTOS.precio_pro <=  @filtroPrecioMayor OR @filtroPrecioMayor = -1 )
AND
(dbo.PRODUCTOS.activo_pro =  1 )
ORDER BY 
CASE
            WHEN @ordenPrecio = 'todos' THEN (RANK() OVER (ORDER BY dbo.PRODUCTOS.nombre_pro ))
            WHEN @ordenPrecio = 'ASC' THEN (RANK() OVER (ORDER BY dbo.PRODUCTOS.precio_pro ASC))
            WHEN @ordenPrecio = 'DESC' THEN (RANK() OVER (ORDER BY dbo.PRODUCTOS.precio_pro DESC))
        END



Sean felices! :) Y sientanse libres de opinar ;)

3 comentarios:

  1. Parece una consulta muy avanzada

    ResponderEliminar
  2. Si... es algo avanzada... pero digamos que es una muy buena consulta para una tienda a la hora de realizar una busqueda de productos... Saludos. Gracias por tu comentario.

    ResponderEliminar
  3. deberia de ir explicando cada paso para los novatos eso es muy complicado

    ResponderEliminar

Palabras Clave

.NET (93) AJAX (2) ajaxcontroltoolkit (2) Algoritmos (1) android (1) Angular (1) Arrays (1) AS2 o ActionScript 2.0 (1) AS3 o ActionScript 3.0 (64) ASP (7) ASP.NET (3) Azure (1) Azure DevOps (2) Backup (2) Batch (4) blogger (1) Browser Support (2) C# (53) Charts (1) Chorme extensions (1) Chrome (3) cmd (18) código postal (1) Colombia tips (1) command (1) Conexion remota (1) Controles Web .NET (24) Cookies (1) cordova (1) CSS (14) CSV (5) Cufon (1) DateTime (2) deployment (2) Desarrollo movil (2) Desarrollo web (5) Diseño (4) DNN o DotNetNuke (5) docker (1) Encuestas (1) Entity Framework (1) Error (1) Eval (2) Excel (4) Expresiones regulares (2) Facebook (14) fechas (1) Fiddler (1) FileUpload (1) Filezilla (1) Firefox (2) Flash (9) Fonts (3) FQL (1) frameworks (2) Futuro de la web (1) git (1) Google Code (13) Google Maps (4) hackintosh (3) hazard 10.6.2 (3) herramientas para developers (1) highchart (1) Hilos (2) Hosting Windows (18) HTML (38) HTML5 (6) IDE (1) IE (2) IE9 (1) IIS (13) imagenes (3) jasmine (2) java (1) jqgrid (2) Jquery y Javascript (90) jquery-ui (5) jQueryMobile (1) JSON (1) knockout (4) library (1) Link Interesantes (2) List (1) Macro (2) Matemáticas (2) Membership (6) Memoria (1) Mis Experiencias (3) momentjs (1) ms-dos (1) MSN (1) MVC (1) MVC4 (3) MySQL (2) node.js (4) Notepad++ (3) Notificaciones (1) ObjectDataSource (2) Online (2) Opinión (4) OSX (3) Parallels Plesk Panel (1) petapoco (1) PhantomJS (1) PHP (4) Porqué este blog (1) Powershell (1) Razor (3) Redes (2) REGEX (4) REST (1) SDK Android (1) Seguridad (1) SelectParameters (1) Selenium (2) sencha (3) sencha cmd (2) SEO (1) SMTP (2) Software útil (8) Solución (1) Soporte (1) SQL (15) SQL Server (58) SQLite (2) Store Procedures (20) String (5) Testing Code (2) texto (2) tips de datos (1) tips de desarrollo (1) TutoFaceAS3 (4) TutoProAS3 (4) Tutoriales (7) Tweenlite effects (3) Últimas noticias (1) unit testing (1) usb (1) VBA (1) Video (1) virus (1) Web API (2) Web Browsers (1) Web Forms (7) web.config (1) Webmaster (8) Webmatrix (1) webrole (1) webservices (1) webstorm (1) Win Forms (5) Windows (21) Windows 7 (1) Windows 8 (1) XML (2) Youtube API (2)