SQL - SQL compleja... Ayuda plz

 
Vista:

SQL compleja... Ayuda plz

Publicado por Bellzebu (8 intervenciones) el 20/08/2002 13:47:23
Hola a todos, necesito que alguien me eche una mano con una SQL, llevo dandole vueltas un tiempo y la verdad es que no se como hacerlo, ahí vá la cuestión:

Tengo la siguiente SQL

SELECT bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_MARCA,
dbo.GEMAR.DESCRIPCION,
COUNT(DISTINCT CARGASEDI.CLAVE_ENTIDAD) AS Entidades,
COUNT(CARGASEDI.STOCKS_VO) AS Numero_envios_stocks
FROM dbo.CARGASEDI
INNER JOIN
bdfaconet.dbo.VIEW_GEENT_VO ON CARGASEDI.CLAVE_ENTIDAD = bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_ENTIDAD
INNER JOIN
dbo.GEMAR ON bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_MARCA = dbo.GEMAR.CLAVE_MARCA
-- Esto pasaremos a calcularlo de otra manera
WHERE CARGASEDI.STOCKS_VO=1 AND CARGASEDI.FECHA_CARGA BETWEEN DATEADD(d, -30, GETDATE()) AND GETDATE()
GROUP BY bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_MARCA, dbo.GEMAR.DESCRIPCION

si os fijais devuelvo todos los registros que tienen el campo STOCKS_VO a 1 (es un tipo de dato bit), pero ¿como puedo devolver tambien (desde la misma consulta) el resto, es decir, los que tienen valor 0?

A ver si alguien sabe como se puede hacer.

Muchas gracias por adelantado.
Salu2.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SQL compleja... Ayuda plz

Publicado por Islas, Isaías (5072 intervenciones) el 20/08/2002 15:35:18
Hola

Quitando la comparación: CARGASEDI.STOCKS_VO=1

¿Es eso?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL compleja... Ayuda plz

Publicado por Bellzebu (8 intervenciones) el 20/08/2002 21:59:42
Gracias por contestar Isaías, pero no es eso, si te fijas uso un alias para devolver todos los registros que tengan stocks_vo=1, pues lo que quiero es de alguna manera usar otro alias para devolver por otra parte (usando otro alias o como sea) los que para cada marca tengan en stocks_vo=0. No se si se podra hacer lo que quiero, pero yo no he encontrado la manera. Mira para que me entiendas mejor, lo que deberia devolverme es esto:

Marca-------Entidades marca------Envios_stocks------Envios_VO
VW -------- 2 ------ 10 ----- 1

¿Me entiendes ahora?

Gracias por responder.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL compleja... Ayuda plz

Publicado por EDELRIO (540 intervenciones) el 20/08/2002 22:06:49
Bueno en la Condicion pongale in (1,0)

y asi obtendra ambos...
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL compleja... Ayuda plz

Publicado por Islas, Isaías (5072 intervenciones) el 20/08/2002 23:25:14
Hola amigo Ernesto.

Lo que pasa es que el amigo necesita una columna por separado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL compleja... Ayuda plz

Publicado por Bellzebu (8 intervenciones) el 21/08/2002 00:42:25
Muchas gracias por responderme, el problema es que necesito como bien dice Isaías un campo disitinto. De todas formas muchas gracias :).

Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL compleja... Ayuda plz

Publicado por Islas, Isaías (5072 intervenciones) el 20/08/2002 22:12:01
Haaaaaaaaa !!!!!, vamos, lo que necesitas es un CASE

SELECT SUM(CASE MycolBol
WHEN 0 THEN 1 ELSE 0 END) AS [Envios_stocks],
SUM(CASE MycolBol
WHEN 1 THEN 0 ELSE 1 END) AS [Envios_VO]
FROM MyTabla
Where.........

¿Es esto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL compleja... Ayuda plz

Publicado por Bellzebu (8 intervenciones) el 21/08/2002 00:40:29
Bueno antes de nada, muchas gracias a todos los que contestais. Aún no lo he probado Isaías, pero lo pruebo ahora mismo a ver si me sirve,la verdad es que nunca habia visto una sentencia similar si no era en un procedimiento almacenado con T-SQL o PL/SQL, de todas formas gracias, ahora mismo te digo si funciona. =)

Un saludote.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: MI MAXIMO AGRADECIMIENTO AL SABIO ISAIAS =)

Publicado por Bellzebu (8 intervenciones) el 21/08/2002 00:52:13
Isaías, de veras, no sabes lo agradecido que estoy :D, he probado usando el CASE como tu me has dicho, la sentencia me queda de esta manera:

SELECT bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_MARCA,
dbo.GEMAR.DESCRIPCION,
COUNT(DISTINCT CARGASEDI.CLAVE_ENTIDAD) AS Entidades,
SUM(CASE CARGASEDI.STOCKS_VO WHEN 1 THEN 1 ELSE 0 END) AS Numero_envios_stocks,
SUM(CASE CARGASEDI.STOCKS_VO WHEN 0 THEN 1 ELSE 0 END) AS Numero_envios_VO
FROM dbo.CARGASEDI
INNER JOIN
bdfaconet.dbo.VIEW_GEENT_VO ON CARGASEDI.CLAVE_ENTIDAD = bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_ENTIDAD
INNER JOIN
dbo.GEMAR ON bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_MARCA = dbo.GEMAR.CLAVE_MARCA
WHERE CARGASEDI.FECHA_CARGA BETWEEN DATEADD(d, -30, GETDATE()) AND GETDATE()
GROUP BY bdfaconet.dbo.VIEW_GEENT_VO.CLAVE_MARCA, dbo.GEMAR.DESCRIPCION

y ¡¡¡¡¡FUNCIONA PERFECTAMENTE!!!!! MUCHAS GRACIAS A TODOS!!!! A TI EN ESPECIAL ISAIAS!!!! =).

Espero corresponderos resolviendo futuras dudas para poder demostrar mi agradecimiento.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: MI MAXIMO AGRADECIMIENTO AL SABIO ISAIAS =)

Publicado por Islas, Isaías (5072 intervenciones) el 21/08/2002 02:47:19
SABIO.- Es aquel idiota que cree que lo sabe todo y por ende, ya no tiene nada que aprender.

Amigo Bellzebu, de ninguna manera me considero sabio, ya que de una cosa estoy lleno y es de HUMILDAD para saber que no se todo lo que creo saber y por ende, me da la oportunidad de seguir aprendiendo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: MI MAXIMO AGRADECIMIENTO AL SABIO ISAIAS =)

Publicado por Bellzebu (8 intervenciones) el 21/08/2002 08:59:59
Tus palabras te honran Isaías.

Muchas gracias.
Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar