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

Consulta SQL

Estas en el tema de Consulta SQL en el foro de SQL Server en Foros del Web. Hola buenas estoy intentando hacer una consulta en SQL que haga lo siguiente necesito que no me repita el campo TRI_NOMBRE_TRIMESTRE_ES (el Mes) solo lo ...
  #1 (permalink)  
Antiguo 22/04/2008, 04:21
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Consulta SQL

Hola buenas estoy intentando hacer una consulta en SQL que haga lo siguiente necesito que no me repita el campo TRI_NOMBRE_TRIMESTRE_ES (el Mes) solo lo Repita si el campo REV_TIPO_REVISTA no es el mismo.
Tengo la siguiente consulta:

SELECT TOP 100 PERCENT dbo.VOL_VOLUMENES.VOL_ANNO, dbo.REV_REVISTAS.REV_TIPO_REVISTA, dbo.REV_REVISTAS.REV_ID_TRIMESTRE,
dbo.TRI_TRIMESTRES.TRI_NOMBRE_TRIMESTRE_ES, dbo.REV_REVISTAS.REV_ID_REVISTA, dbo.REV_REVISTAS.REV_NUMERO_REVISTA
FROM dbo.REV_REVISTAS INNER JOIN
dbo.TRI_TRIMESTRES ON dbo.REV_REVISTAS.REV_ID_TRIMESTRE = dbo.TRI_TRIMESTRES.TRI_ID_TRIMESTRE INNER JOIN
dbo.VOL_VOLUMENES ON dbo.REV_REVISTAS.REV_ID_VOLUMEN = dbo.VOL_VOLUMENES.VOL_ID_VOLUMEN
WHERE (dbo.REV_REVISTAS.REV_ACTIVA = 'S')
GROUP BY dbo.VOL_VOLUMENES.VOL_ANNO, dbo.REV_REVISTAS.REV_ID_TRIMESTRE, dbo.REV_REVISTAS.REV_TIPO_REVISTA,
dbo.TRI_TRIMESTRES.TRI_NOMBRE_TRIMESTRE_ES, dbo.REV_REVISTAS.REV_ID_REVISTA, dbo.REV_REVISTAS.REV_NUMERO_REVISTA
ORDER BY dbo.VOL_VOLUMENES.VOL_ANNO DESC, dbo.REV_REVISTAS.REV_TIP



muchas gracias y salu2
  #2 (permalink)  
Antiguo 22/04/2008, 09:42
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Consulta SQL

Siempre es bueno poner ejemplos. Cual es resultado que tienes ahora, y cual deberia ser?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 22/04/2008, 10:12
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Re: Consulta SQL

Cita:
Iniciado por flaviovich Ver Mensaje
Siempre es bueno poner ejemplos. Cual es resultado que tienes ahora, y cual deberia ser?
He estado averiguando y lo que necesito es una consulta con procedimiento almacenado teniendo los siguientes campos:

VOL_ANNO= El Año Impreso el Volumen (1999 - 2008)
REV_TIPO_REVISTA= Si es Suplemento o Revista (R o S)
REV_ID_TRIMESTRE= TRIMESTRE DEL AÑO PUBLICADA LA REVISTA (1 - 4)
TRI_NOMBRE_TRIMESTRE_ES= TRIMESTRE DEL AÑO PUBLICADO DE LA REVISTA
(Enero/Marzo - Abril/Junio)

REV_ID_REVISTA= ID De la Revista
REV_NUMERO_REVISTA= El numero publicado de la revista

--------------------------------------------

Lo que necesito sacar con una consulta son todos esos datos pero sin repeticiones con un procedimiento almacenado me han comentado y lo que tengo son todos los resultados pero me repite muchos datos osea q no me sirve

salu2 y gracias por responder
  #4 (permalink)  
Antiguo 22/04/2008, 11:16
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Consulta SQL

Aun no esta muy claro lo que necesitas porque no pones ejemplos del resultado que esperas.
Te dejo por ahora esto:
Código:
CREATE PROCEDURE dbo.sp_GetRevistasXAnio
(
    @VOL_ANNO INT,-- El Año Impreso el Volumen (1999 - 2008)
    @REV_TIPO_REVISTA CHAR(1),-- Si es Suplemento o Revista (R o S)
    @REV_ID_TRIMESTRE SMALLINT,-- TRIMESTRE DEL AÑO PUBLICADA LA REVISTA (1 - 4)
    @TRI_NOMBRE_TRIMESTRE_ES VARCHAR(25)-- TRIMESTRE DEL AÑO PUBLICADO DE LA REVISTA(Enero/Marzo - Abril/Junio)
)
AS
BEGIN
--REV_ID_REVISTA= ID De la Revista
--REV_NUMERO_REVISTA= El numero publicado de la revista

SELECT TOP 100 PERCENT V.VOL_ANNO, R.REV_TIPO_REVISTA, R.REV_ID_TRIMESTRE, T.TRI_NOMBRE_TRIMESTRE_ES, R.REV_ID_REVISTA, R.REV_NUMERO_REVISTA
FROM REV_REVISTAS R
    INNER JOIN TRI_TRIMESTRES T ON R.REV_ID_TRIMESTRE=T.TRI_ID_TRIMESTRE
    INNER JOIN VOL_VOLUMENES V ON R.REV_ID_VOLUMEN=V.VOL_ID_VOLUMEN
WHERE R.REV_ACTIVA = 'S'
    AND V.VOL_ANNO = @VOL_ANNO
    AND R.REV_TIPO_REVISTA = @REV_TIPO_REVISTA
    AND R.REV_ID_TRIMESTRE = @REV_ID_TRIMESTRE
    AND T.TRI_NOMBRE_TRIMESTRE_ES = @TRI_NOMBRE_TRIMESTRE_ES
GROUP BY V.VOL_ANNO, R.REV_ID_TRIMESTRE, R.REV_TIPO_REVISTA, T.TRI_NOMBRE_TRIMESTRE_ES, R.REV_ID_REVISTA, R.REV_NUMERO_REVISTA
ORDER BY V.VOL_ANNO DESC, R.REV_TIP

END
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #5 (permalink)  
Antiguo 23/04/2008, 01:45
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Re: Consulta SQL

Cita:
Iniciado por flaviovich Ver Mensaje
Aun no esta muy claro lo que necesitas porque no pones ejemplos del resultado que esperas.
Te dejo por ahora esto:
Código:
CREATE PROCEDURE dbo.sp_GetRevistasXAnio
(
    @VOL_ANNO INT,-- El Año Impreso el Volumen (1999 - 2008)
    @REV_TIPO_REVISTA CHAR(1),-- Si es Suplemento o Revista (R o S)
    @REV_ID_TRIMESTRE SMALLINT,-- TRIMESTRE DEL AÑO PUBLICADA LA REVISTA (1 - 4)
    @TRI_NOMBRE_TRIMESTRE_ES VARCHAR(25)-- TRIMESTRE DEL AÑO PUBLICADO DE LA REVISTA(Enero/Marzo - Abril/Junio)
)
AS
BEGIN
--REV_ID_REVISTA= ID De la Revista
--REV_NUMERO_REVISTA= El numero publicado de la revista

SELECT TOP 100 PERCENT V.VOL_ANNO, R.REV_TIPO_REVISTA, R.REV_ID_TRIMESTRE, T.TRI_NOMBRE_TRIMESTRE_ES, R.REV_ID_REVISTA, R.REV_NUMERO_REVISTA
FROM REV_REVISTAS R
    INNER JOIN TRI_TRIMESTRES T ON R.REV_ID_TRIMESTRE=T.TRI_ID_TRIMESTRE
    INNER JOIN VOL_VOLUMENES V ON R.REV_ID_VOLUMEN=V.VOL_ID_VOLUMEN
WHERE R.REV_ACTIVA = 'S'
    AND V.VOL_ANNO = @VOL_ANNO
    AND R.REV_TIPO_REVISTA = @REV_TIPO_REVISTA
    AND R.REV_ID_TRIMESTRE = @REV_ID_TRIMESTRE
    AND T.TRI_NOMBRE_TRIMESTRE_ES = @TRI_NOMBRE_TRIMESTRE_ES
GROUP BY V.VOL_ANNO, R.REV_ID_TRIMESTRE, R.REV_TIPO_REVISTA, T.TRI_NOMBRE_TRIMESTRE_ES, R.REV_ID_REVISTA, R.REV_NUMERO_REVISTA
ORDER BY V.VOL_ANNO DESC, R.REV_TIP

END
Muchas gracias flaviovich la consulta parece que va bien solo me dice una cosa para salvarla que debo declarar la variable VOL_ANNO, Pero igual la ejecute en el SQL SERVER y ahora me sale en el apartado de Procedimientos Almacenados entonces mi pregunta es como lo llamo?? poniendo el mismo nombre del procedimiento en la consulta que tengo en C#?? en plan lo siguiente:

string SQL_QUERY = "SELECT * FROM sp_GetRevistasXAnio";


Un saludo y muchas gracias,

igual voy a probarlo y te cuento
  #6 (permalink)  
Antiguo 23/04/2008, 01:49
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Re: Consulta SQL

Al ejecutarlo me dice que el nombre del objeto no es valido el sp_GetRevistasXAnio vamos que tengo que utilizar otra cosa para llamarlo en una consulta. Voy a mirar

salu2
  #7 (permalink)  
Antiguo 23/04/2008, 07:15
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Consulta SQL

Pues tienes que pasarle los 4 parametros:
Código:
EXEC sp_GetRevistasXAnio 2008,'R',4, 'Enero/Marzo'
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #8 (permalink)  
Antiguo 23/04/2008, 07:54
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Re: Consulta SQL

Cita:
Iniciado por flaviovich Ver Mensaje
Pues tienes que pasarle los 4 parametros:
Código:
EXEC sp_GetRevistasXAnio 2008,'R',4, 'Enero/Marzo'
Pues pongo lo siguiente:

string SQL_QUERY = "EXEC sp_GetRevistasXAnio 2008,'R',4, 'Enero/Marzo'";

y no me da error pero al llegar a la pagina de ejecutar la consulta no me muestra datos es como si se quedase ai parado.

Alguna sujerencia?

Salu2
  #9 (permalink)  
Antiguo 23/04/2008, 09:43
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Consulta SQL

Ese ya es otro problema: como llamar a una SP desde C#?
Haz la consulta en el foro correspondiente.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #10 (permalink)  
Antiguo 24/04/2008, 01:39
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Re: Consulta SQL

flaviovich el problema con tu consulta la he ejecutado en el Analizador de consultas SQL en SQL Server 2000 y no me devuelve ningun resultado.

Sabes cual es el problema?? La has probado tu??

Saludos y gracias

l
  #11 (permalink)  
Antiguo 24/04/2008, 03:26
Avatar de codeman1234  
Fecha de Ingreso: marzo-2008
Mensajes: 545
Antigüedad: 16 años, 1 mes
Puntos: 2
Re: Consulta SQL

Yo lo que necesito es un procedimiento almacenado para cada año para que me saque una vez el año me saque si es Revista o Suplemento (dependiendo si tiene suplemento o no), me saque el numero de Revista o suplemento y me saque el trimestre enero/ marzo, abril/junio,julio/septiembre y oct/diciembre

que quede asi:Yo lo que necesito es un procedimiento almacenado para cada año para que me saque una vez el año me saque si es Revista o Suplemento (dependiendo si tiene suplemento o no), me saque el numero de Revista o suplemento y me saque el trimestre enero/ marzo, abril/junio,julio/septiembre y oct/diciembre

que quede asi:

2006
Rev. 9 Rev. 10 Rev. 11 Rev. 12
Enero/Marzo Abril/Junio Julio/Sept Oct/Dic
Supl. 1 Supl. 2 Supl. 3 Supl.4
Enero/Marzo Abril/Junio Julio/Sept Oct/Dic

2005
Rev. 5 Rev. 6 Rev. 7 Rev. 8
Enero/Marzo Abril/Junio Julio/Sept Oct/Dic

Supl. 1 Supl. 2 Supl. 3 Supl.4
Enero/Marzo Abril/Junio Julio/Sept Oct/Dic

2004
Rev. 1 Rev. 2 Rev. 3 Rev. 4
Enero/Marzo Abril/Junio Julio/Sept Oct/Dic


Y hacer un procedimiento que lo haga para cada año, nose si me explico bien?

Sabes como podria hacer eso??

salu2 y gracias :)

Última edición por codeman1234; 24/04/2008 a las 03:50
  #12 (permalink)  
Antiguo 24/04/2008, 08:16
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Re: Consulta SQL

Segun lo que entendi, el resultado se muestra de acuerdo al año seleccionado, cierto?
Código:
CREATE PROCEDURE dbo.sp_GetRevistasXAnio
(
    @VOL_ANNO INT-- El Año Impreso el Volumen (1999 - 2008)
)
AS
BEGIN
--REV_ID_REVISTA= ID De la Revista
--REV_NUMERO_REVISTA= El numero publicado de la revista

SELECT V.VOL_ANNO, R.REV_TIPO_REVISTA, R.REV_ID_TRIMESTRE, T.TRI_NOMBRE_TRIMESTRE_ES, R.REV_ID_REVISTA, R.REV_NUMERO_REVISTA
FROM REV_REVISTAS R
    INNER JOIN TRI_TRIMESTRES T ON R.REV_ID_TRIMESTRE=T.TRI_ID_TRIMESTRE
    INNER JOIN VOL_VOLUMENES V ON R.REV_ID_VOLUMEN=V.VOL_ID_VOLUMEN
WHERE R.REV_ACTIVA = 'S'
    AND V.VOL_ANNO = @VOL_ANNO
GROUP BY V.VOL_ANNO, R.REV_ID_TRIMESTRE, R.REV_TIPO_REVISTA, T.TRI_NOMBRE_TRIMESTRE_ES, R.REV_ID_REVISTA, R.REV_NUMERO_REVISTA
ORDER BY V.VOL_ANNO DESC, R.REV_TIP

END
En todo caso, explica el uso de las 3 tablas, y muestra algunos registros por cada una.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 21:11.