Consulta sobre la misma tabla

23/08/2004 - 16:27 por Horacio | Informe spam
hola

Tengo una tabla con las siguientes columnas:
ID;Desc;Valor;Fecha

Para cada ID tengo 2 registros con la misma fecha, en uno
la descripcicion en 'VA' y en el otro en 'VA93' ambos con
valores distintos. Este diseño no lo puedo cambiar.

lo que necesito mostrar es:
ID; Fecha; Valor para VA; Valor para VA93

estaría bien hacer dos vistas filtrando en una 'va' y en
otra 'va93' y luego hacer :

select va.id, va.fecha, va.valor, va93.valor
from vwVA va, vwVA93 va93
where va.id=va93.id

o hay alguna forma mejor?

gracias

HRC

Preguntas similare

Leer las respuestas

#1 Maxi
23/08/2004 - 16:59 | Informe spam
Horacio, podrias probar con:

select va.id, va.fecha, va.valor, va93.valor
from vwVA va inner join vwVA va93 on
va.id=va93.id and
va.valor <> va93.valor

Suerte



Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Horacio" escribió en el mensaje
news:451601c4891d$621fbac0$
hola

Tengo una tabla con las siguientes columnas:
ID;Desc;Valor;Fecha

Para cada ID tengo 2 registros con la misma fecha, en uno
la descripcicion en 'VA' y en el otro en 'VA93' ambos con
valores distintos. Este diseño no lo puedo cambiar.

lo que necesito mostrar es:
ID; Fecha; Valor para VA; Valor para VA93

estaría bien hacer dos vistas filtrando en una 'va' y en
otra 'va93' y luego hacer :

select va.id, va.fecha, va.valor, va93.valor
from vwVA va, vwVA93 va93
where va.id=va93.id

o hay alguna forma mejor?

gracias

HRC



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.740 / Virus Database: 494 - Release Date: 16/08/2004
Respuesta Responder a este mensaje
#2 Liliana Sorrentino
23/08/2004 - 18:29 | Informe spam
Hola Horacio,
Si tenés índice sobre ID, Fecha, podrías hacer:

SELECT ID, Fecha, MAX(CASE WHEN Desc = 'VA' THEN Valor ELSE 0 END), MAX(CASE
WHEN Desc = 'VA93' THEN Valor ELSE 0 END)
FROM tabla

Saludos... Liliana.

"Horacio" escribió en el mensaje
news:451601c4891d$621fbac0$
hola

Tengo una tabla con las siguientes columnas:
ID;Desc;Valor;Fecha

Para cada ID tengo 2 registros con la misma fecha, en uno
la descripcicion en 'VA' y en el otro en 'VA93' ambos con
valores distintos. Este diseño no lo puedo cambiar.

lo que necesito mostrar es:
ID; Fecha; Valor para VA; Valor para VA93

estaría bien hacer dos vistas filtrando en una 'va' y en
otra 'va93' y luego hacer :

select va.id, va.fecha, va.valor, va93.valor
from vwVA va, vwVA93 va93
where va.id=va93.id

o hay alguna forma mejor?

gracias

HRC
Respuesta Responder a este mensaje
#3 ulises
24/08/2004 - 01:55 | Informe spam
No sé si te he entendido pero si tienes lo siguiente :

create table tabla ( id int, descripcion char(4), valor
int , fecha datetime )
insert into tabla values ( 1,'VA',10,'20040101')
insert into tabla values ( 1,'VA93',11,'20040101')
insert into tabla values ( 2,'VA',20,'20040102')
insert into tabla values ( 2,'VA93',21,'20040102')

utilizando la siguiente sentencia :

select a.id, a.fecha, a.valor, b.valor
from tabla a join
( select id, fecha, valor
from tabla where descripcion = 'VA93' ) b
on a.id = b.id and a.fecha = b.fecha
where descripcion = 'VA'

obtienes :

id
fecha
valor valor
1 2004-01-01 10 11
2 2004-01-02 20 21

(2 row(s) affected)

Saludos,
Ulises

hola

Tengo una tabla con las siguientes columnas:
ID;Desc;Valor;Fecha

Para cada ID tengo 2 registros con la misma fecha, en uno
la descripcicion en 'VA' y en el otro en 'VA93' ambos con
valores distintos. Este diseño no lo puedo cambiar.

lo que necesito mostrar es:
ID; Fecha; Valor para VA; Valor para VA93

estaría bien hacer dos vistas filtrando en una 'va' y en
otra 'va93' y luego hacer :

select va.id, va.fecha, va.valor, va93.valor
from vwVA va, vwVA93 va93
where va.id=va93.id

o hay alguna forma mejor?

gracias

HRC
.

Respuesta Responder a este mensaje
#4 Miguel Egea
30/08/2004 - 20:11 | Informe spam
Mi voto es para ti liliana :-) eso si añadiendo group by id,fecha..


-
Miguel Egea Gómez
Microsoft SQL-Server MVP
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Liliana Sorrentino" escribió en el mensaje
news:
Hola Horacio,
Si tenés índice sobre ID, Fecha, podrías hacer:

SELECT ID, Fecha, MAX(CASE WHEN Desc = 'VA' THEN Valor ELSE 0 END),


MAX(CASE
WHEN Desc = 'VA93' THEN Valor ELSE 0 END)
FROM tabla

Saludos... Liliana.

"Horacio" escribió en el mensaje
news:451601c4891d$621fbac0$
hola

Tengo una tabla con las siguientes columnas:
ID;Desc;Valor;Fecha

Para cada ID tengo 2 registros con la misma fecha, en uno
la descripcicion en 'VA' y en el otro en 'VA93' ambos con
valores distintos. Este diseño no lo puedo cambiar.

lo que necesito mostrar es:
ID; Fecha; Valor para VA; Valor para VA93

estaría bien hacer dos vistas filtrando en una 'va' y en
otra 'va93' y luego hacer :

select va.id, va.fecha, va.valor, va93.valor
from vwVA va, vwVA93 va93
where va.id=va93.id

o hay alguna forma mejor?

gracias

HRC


Respuesta Responder a este mensaje
#5 Liliana Sorrentino
30/08/2004 - 20:21 | Informe spam
Gracias amigo por la corrección!
Una respuesta por minuto, ¡esos sí son tiempos buenos!
Saludos Miguel,
Liliana.

"Miguel Egea" escribió en el mensaje
news:
Mi voto es para ti liliana :-) eso si añadiendo group by id,fecha..


-
Miguel Egea Gómez
Microsoft SQL-Server MVP
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Liliana Sorrentino" escribió en el


mensaje
news:
> Hola Horacio,
> Si tenés índice sobre ID, Fecha, podrías hacer:
>
> SELECT ID, Fecha, MAX(CASE WHEN Desc = 'VA' THEN Valor ELSE 0 END),
MAX(CASE
> WHEN Desc = 'VA93' THEN Valor ELSE 0 END)
> FROM tabla
>
> Saludos... Liliana.
>
> "Horacio" escribió en el mensaje
> news:451601c4891d$621fbac0$
> hola
>
> Tengo una tabla con las siguientes columnas:
> ID;Desc;Valor;Fecha
>
> Para cada ID tengo 2 registros con la misma fecha, en uno
> la descripcicion en 'VA' y en el otro en 'VA93' ambos con
> valores distintos. Este diseño no lo puedo cambiar.
>
> lo que necesito mostrar es:
> ID; Fecha; Valor para VA; Valor para VA93
>
> estaría bien hacer dos vistas filtrando en una 'va' y en
> otra 'va93' y luego hacer :
>
> select va.id, va.fecha, va.valor, va93.valor
> from vwVA va, vwVA93 va93
> where va.id=va93.id
>
> o hay alguna forma mejor?
>
> gracias
>
> HRC
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida