Principales respuestas
Consultas sin saber determinar la cantidad de condiciones

Pregunta
-
Hola amigos de Sql pues quería saber si es posible desarrollar una consulta si saber cuantos condiciones podría tener, me refiero a :
por ejemplo: quiero consultar la tabla pelicula.
select * from pelicula
bueno hasta ahi todo normal, pero que pasa si yo quiero
visualizar las peliculas del ActorA y el ActorB (osea puede ser que selecciones en mi consulta al Actor W y al Actor X y la consulta ya no fuera por 2 actores si no por cuatro y asi pudiendo sumar mas opciones) del genero Romántico y a la vez del genero terror.
En conclusion tuviera 4 actores (que podría seleccionar mas o menos) y tendría por 2 generos
No pudiendo establecer la cantidad de condiciones ya que mi tabla actor puede ir incrementadose con el paso del tiempo, asi como mi tabla genero.
Este ejemplo es ficticio pero queria me digan, si es posible volver una consulta dinamicamente o bueno no se como llamarla.
Saludos
"SI LOGRAS CONCENTRARTE EL MUNDO DEJARA DE EXISTIR"
Respuestas
-
Echa un vistazo a este artículo de Erland Sommarskog, ahí detalla las opciones que tienes para implementar una solución a tu escenario: Dynamic Search Conditions in T-SQL
- Propuesto como respuesta -_DNC_- jueves, 6 de junio de 2013 14:05
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 14 de junio de 2013 4:55
-
Hola, hay varios documentos por la red al respecto, tienes como opción:
Te dejo algunas ligas:
- Execute Dynamic SQL commands in SQL Server
- Como ejecutar SQL dinámico en SQL Server
- SQL dinámico en Transact SQL
Aunque considero que si estas entrando en este tema, también debes leer sobre SQL INJECTION.
SALUDOS
Sergio Sánchez Arias
Oaxaca,México
AYÚDANOS A AYUDARTE
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 14 de junio de 2013 4:55
Todas las respuestas
-
Echa un vistazo a este artículo de Erland Sommarskog, ahí detalla las opciones que tienes para implementar una solución a tu escenario: Dynamic Search Conditions in T-SQL
- Propuesto como respuesta -_DNC_- jueves, 6 de junio de 2013 14:05
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 14 de junio de 2013 4:55
-
Hola, hay varios documentos por la red al respecto, tienes como opción:
Te dejo algunas ligas:
- Execute Dynamic SQL commands in SQL Server
- Como ejecutar SQL dinámico en SQL Server
- SQL dinámico en Transact SQL
Aunque considero que si estas entrando en este tema, también debes leer sobre SQL INJECTION.
SALUDOS
Sergio Sánchez Arias
Oaxaca,México
AYÚDANOS A AYUDARTE
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 14 de junio de 2013 4:55
-
USE master GO CREATE DATABASE PELICULA USE PELICULA GO CREATE TABLE Actor [IdActor] [int] IDENTITY(1,1) NOT NULL, [DesActor] [varchar](50) NULL, CONSTRAINT [PK_Actor] PRIMARY KEY CLUSTERED ( [IdActor] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE Genero( [idGenero] [int] IDENTITY(1,1) NOT NULL, [DesGenero] [varchar](50) NULL, CONSTRAINT [PK_Genero] PRIMARY KEY CLUSTERED ( [idGenero] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE Pelicula( [IdPelicula] [int] IDENTITY(1,1) NOT NULL, [DesPelicula] [varchar](50) NULL, [IdActor] [int] NULL, [idGenero] [int] NULL, CONSTRAINT [PK_Pelicula] PRIMARY KEY CLUSTERED ( [IdPelicula] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT [FK_Pelicula_Actor] FOREIGN KEY([IdActor]) REFERENCES [dbo].[Actor] ([IdActor]) GO ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT [FK_Pelicula_Actor] GO ALTER TABLE [dbo].[Pelicula] WITH CHECK ADD CONSTRAINT [FK_Pelicula_Genero] FOREIGN KEY([idGenero]) REFERENCES [dbo].[Genero] ([idGenero]) GO ALTER TABLE [dbo].[Pelicula] CHECK CONSTRAINT [FK_Pelicula_Genero] GO
GO INSERT INTO ACTOR VALUES ('ACTOR A') INSERT INTO ACTOR VALUES ('ACTOR B') INSERT INTO ACTOR VALUES ('ACTOR C') INSERT INTO ACTOR VALUES ('ACTOR D') INSERT INTO ACTOR VALUES ('ACTOR E') INSERT INTO ACTOR VALUES ('ACTOR F') INSERT INTO ACTOR VALUES ('ACTOR G') INSERT INTO ACTOR VALUES ('ACTOR H') INSERT INTO ACTOR VALUES ('ACTOR I') INSERT INTO ACTOR VALUES ('ACTOR J') INSERT INTO GENERO VALUES ('ROMANTICO') INSERT INTO GENERO VALUES ('TERROR') INSERT INTO GENERO VALUES ('COMEDIA') INSERT INTO GENERO VALUES ('INFANTIL') INSERT INTO GENERO VALUES ('ACCION') INSERT INTO GENERO VALUES ('DRAMA') INSERT INTO PELICULA VALUES ('PELICULA1',1,1) INSERT INTO PELICULA VALUES ('PELICULA2',1,2) INSERT INTO PELICULA VALUES ('PELICULA3',1,3) INSERT INTO PELICULA VALUES ('PELICULA4',2,1) INSERT INTO PELICULA VALUES ('PELICULA5',2,2) INSERT INTO PELICULA VALUES ('PELICULA6',3,1) INSERT INTO PELICULA VALUES ('PELICULA7',4,1) INSERT INTO PELICULA VALUES ('PELICULA8',4,3) INSERT INTO PELICULA VALUES ('PELICULA9',5,6) INSERT INTO PELICULA VALUES ('PELICULA10',5,4) INSERT INTO PELICULA VALUES ('PELICULA11',6,1)
Justamente estaba preparando un script al respecto, y me doy con la sorpresa de que ya hay dos respuesta... bueno gracias voy a leer un poco .. pero les dejo de todas maneras el script para haber si me dan una ayuda extra.
Saludos
"SI LOGRAS CONCENTRARTE EL MUNDO DEJARA DE EXISTIR"