Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Duda con View

Estas en el tema de Duda con View en el foro de PostgreSQL en Foros del Web. Hola amigos tengo la siguiente duda como puedo realizar un view con una condicion where dinamica? me explico con un ejemplo simple supongamos que tenemos ...
  #1 (permalink)  
Antiguo 10/01/2011, 14:13
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 7 meses
Puntos: 2
Duda con View

Hola amigos tengo la siguiente duda como puedo realizar un view con una condicion where dinamica? me explico con un ejemplo simple supongamos que tenemos este select y lo quiero meter dentro de una view

CREATE VIEW Prueba AS select id_test as id from test where id_test2 = ? esta parte no se como hacerlo para despues llamarlo con la view de esta manera

select id from Prueba where id = 1 por ejemplo....


Ojala se me a ya entendido....jejejej
  #2 (permalink)  
Antiguo 10/01/2011, 20:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Duda con View

se entiende... pero no tiene sentido lo que quieres hacer.

Porque no haces la vista y cuando la quieras usar de forma dinamica haces la condición en la vista?

saludos death_nemesis
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 11/01/2011, 04:17
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Duda con View

y como podria hacerlo ya que tengo unos union all en el select el cual requiere de la clausula where...

mira esta es la tabla
Código SQL:
Ver original
  1. CREATE TABLE REPORT(
  2.     ID_VEHICULO_REPORT INTEGER,
  3.     FECHA_INGRESO   TIMESTAMP WITHOUT TIME ZONE,
  4.     TIEMPO_INGRESO_AUTORIZADO NUMERIC,
  5.     TIEMPO_ETAPA1  NUMERIC,
  6.     TIEMPO_ETAPA2  NUMERIC,
  7.     TIEMPO_ETAPA3  NUMERIC,
  8.     TIEMPO_ETAPA4  NUMERIC,
  9.     TIEMPO_ETAPA5  NUMERIC,
  10.     TIEMPO_ETAPA6  NUMERIC,
  11.     TIEMPO_ETAPA7  NUMERIC,
  12.     TIEMPO_ETAPA8  NUMERIC,
  13.     TIEMPO_ETAPA9  NUMERIC,
  14.     TIEMPO_ETAPA10 NUMERIC,
  15.     TIEMPO_ETAPA11 NUMERIC,
  16.     TIEMPO_ETAPA12 NUMERIC,
  17.     TIEMPO_ETAPA13 NUMERIC,
  18.     TIEMPO_ETAPA14 NUMERIC,
  19.     TIEMPO_ETAPA15 NUMERIC,
  20.     ETA_Actual  CHARACTER VARYING,
  21.     TIEMPO_REPARACION_CLIENTE NUMERIC,
  22.     TIEMPO_TOTAL_REPARACION NUMERIC,
  23.     FECHA_TOTAL_REPARACION TIMESTAMP WITHOUT TIME ZONE,
  24.     ID_LOCAL INTEGER,
  25.     ID_TALLER CHARACTER VARYING,
  26.     ID_COMPANIA INTEGER,   
  27.     CONSTRAINT pk_REPORT PRIMARY KEY (ID_VEHICULO_REPORT)
  28. );


y esta es la query que quiero meter en la view....si te fijas en la parte de los símbolos ? es donde quiero poner la condición según lo que se coloque en la view como clausula

Código SQL:
Ver original
  1. SELECT 'Desarme'::VARCHAR AS Detalle,SUM(TIEMPO_ETAPA1)AS Actual,(
  2. SELECT SUM(TIEMPO_ETAPA1) FROM report WHERE date_part('Month',FECHA_INGRESO) = date_part('Month',(CURRENT_DATE - INTERVAL '1 Month'))
  3. AND ID_COMPANIA = ?) AS Anterior
  4. FROM report WHERE date_part('Month',FECHA_INGRESO) = date_part('Month',CURRENT_DATE) AND ID_COMPANIA = ? UNION ALL
  5. SELECT 'Desabolladura'::VARCHAR AS Detalle,SUM(TIEMPO_ETAPA2)AS Actual,(
  6. SELECT SUM(TIEMPO_ETAPA2) FROM report WHERE date_part('Month',FECHA_INGRESO) = date_part('Month',(CURRENT_DATE - INTERVAL '1 Month')) AND
  7. ID_COMPANIA = ?) AS Anterior
  8. FROM report WHERE date_part('Month',FECHA_INGRESO) = date_part('Month',CURRENT_DATE) AND ID_COMPANIA = ?

Etiquetas: view
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:25.