Como obtener esta Vista

19/09/2008 - 13:18 por JaviML | Informe spam
Tengo la vista1.
¿Como sería la vista para que me muestre los artículos que existan en el
mismo Qdesde pero con diferente precio?
En este caso vemos que no coincide el precio de Qdesde: 5000

vista1:
Agrupacion IDArticulo QDesde Precio
A 1 1000 157
A 1 2000 160
A 1 5000 201
A 2 500 125 -> No
tiene que considerar esta linea, porque el artículo 1 no tiene ese Qdesde
A 2 1000 157
A 2 2000 160
A 2 5000 205
B ..


Me debería de salir en la consulta:

Agrupacion IDArticulo Qdesde Precio
A 1 5000 201
A 2 5000 205

Gracias de antemano.

Preguntas similare

Leer las respuestas

#1 Ricardo Passians
19/09/2008 - 16:12 | Informe spam
Si entendí bien, quizás haciendo una 'diferencia' (instrucción EXCEPT) y
subconsultas:

SELECT A.agrupacion, A.idarticulo, A.qdesde, A.precio
FROM Vista1 A
INNER JOIN
(SELECT qdesde, COUNT(*) AS cnt FROM Vista1
GROUP BY qdesde HAVING (COUNT(*) > 1)) B
ON A.qdesde = B.qdesde
EXCEPT
SELECT C.agrupacion, C.idarticulo, C.qdesde, C.precio
FROM Vista1 C
INNER JOIN
(SELECT qdesde, precio, COUNT(*) AS cnt FROM Vista1
GROUP BY qdesde, precio HAVING (COUNT(*) > 1)) D
ON C.qdesde = D.qdesde AND C.precio = D.precio

Quizás requiera algún ajuste pero la idea es esa.

Espero te sirva.

Saludos

Ricardo Passians



"JaviML" escribió en el mensaje
news:
Tengo la vista1.
¿Como sería la vista para que me muestre los artículos que existan en el
mismo Qdesde pero con diferente precio?
En este caso vemos que no coincide el precio de Qdesde: 5000

vista1:
Agrupacion IDArticulo QDesde Precio
A 1 1000 157
A 1 2000 160
A 1 5000 201
A 2 500 125 ->
No
tiene que considerar esta linea, porque el artículo 1 no tiene ese Qdesde
A 2 1000 157
A 2 2000 160
A 2 5000 205
B ..


Me debería de salir en la consulta:

Agrupacion IDArticulo Qdesde Precio
A 1 5000 201
A 2 5000 205

Gracias de antemano.
Respuesta Responder a este mensaje
#2 JaviML
22/09/2008 - 10:50 | Informe spam
¿se puede usar este tipo de consulta con SQL 2000?
Gracias.



"Ricardo Passians" wrote:


Si entendí bien, quizás haciendo una 'diferencia' (instrucción EXCEPT) y
subconsultas:

SELECT A.agrupacion, A.idarticulo, A.qdesde, A.precio
FROM Vista1 A
INNER JOIN
(SELECT qdesde, COUNT(*) AS cnt FROM Vista1
GROUP BY qdesde HAVING (COUNT(*) > 1)) B
ON A.qdesde = B.qdesde
EXCEPT
SELECT C.agrupacion, C.idarticulo, C.qdesde, C.precio
FROM Vista1 C
INNER JOIN
(SELECT qdesde, precio, COUNT(*) AS cnt FROM Vista1
GROUP BY qdesde, precio HAVING (COUNT(*) > 1)) D
ON C.qdesde = D.qdesde AND C.precio = D.precio

Quizás requiera algún ajuste pero la idea es esa.

Espero te sirva.

Saludos

Ricardo Passians



"JaviML" escribió en el mensaje
news:
> Tengo la vista1.
> ¿Como sería la vista para que me muestre los artículos que existan en el
> mismo Qdesde pero con diferente precio?
> En este caso vemos que no coincide el precio de Qdesde: 5000
>
> vista1:
> Agrupacion IDArticulo QDesde Precio
> A 1 1000 157
> A 1 2000 160
> A 1 5000 201
> A 2 500 125 ->
> No
> tiene que considerar esta linea, porque el artículo 1 no tiene ese Qdesde
> A 2 1000 157
> A 2 2000 160
> A 2 5000 205
> B ..
>
>
> Me debería de salir en la consulta:
>
> Agrupacion IDArticulo Qdesde Precio
> A 1 5000 201
> A 2 5000 205
>
> Gracias de antemano.



Respuesta Responder a este mensaje
#3 Ricardo Passians
23/09/2008 - 02:13 | Informe spam
La he usado a partir de SQL 2005.

No recuerdo si existe en SQL 2000 pero si no existe habría que rediseñar la
consulta quizás anidando más sub-consultas o usando alguna tabla temporal
para procesamiento parcial.

Saludos

Ricardo Passians


"JaviML" escribió en el mensaje
news:
¿se puede usar este tipo de consulta con SQL 2000?
Gracias.



"Ricardo Passians" wrote:


Si entendí bien, quizás haciendo una 'diferencia' (instrucción EXCEPT) y
subconsultas:

SELECT A.agrupacion, A.idarticulo, A.qdesde, A.precio
FROM Vista1 A
INNER JOIN
(SELECT qdesde, COUNT(*) AS cnt FROM Vista1
GROUP BY qdesde HAVING (COUNT(*) > 1)) B
ON A.qdesde = B.qdesde
EXCEPT
SELECT C.agrupacion, C.idarticulo, C.qdesde, C.precio
FROM Vista1 C
INNER JOIN
(SELECT qdesde, precio, COUNT(*) AS cnt FROM Vista1
GROUP BY qdesde, precio HAVING (COUNT(*) > 1)) D
ON C.qdesde = D.qdesde AND C.precio = D.precio

Quizás requiera algún ajuste pero la idea es esa.

Espero te sirva.

Saludos

Ricardo Passians



"JaviML" escribió en el mensaje
news:
> Tengo la vista1.
> ¿Como sería la vista para que me muestre los artículos que existan en
> el
> mismo Qdesde pero con diferente precio?
> En este caso vemos que no coincide el precio de Qdesde: 5000
>
> vista1:
> Agrupacion IDArticulo QDesde Precio
> A 1 1000 157
> A 1 2000 160
> A 1 5000 201
> A 2 500
> 125 ->
> No
> tiene que considerar esta linea, porque el artículo 1 no tiene ese
> Qdesde
> A 2 1000 157
> A 2 2000 160
> A 2 5000 205
> B ..
>
>
> Me debería de salir en la consulta:
>
> Agrupacion IDArticulo Qdesde Precio
> A 1 5000 201
> A 2 5000 205
>
> Gracias de antemano.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida