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

[SOLUCIONADO] Como realizar el siguiente select ?

Estas en el tema de Como realizar el siguiente select ? en el foro de SQL Server en Foros del Web. Hola gente, Tengo un pequeño problema, estoy haciendo un select que me devuelve algunos datos de forma agrupada por los datos que requiero: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 14/01/2014, 10:06
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Como realizar el siguiente select ?

Hola gente,

Tengo un pequeño problema, estoy haciendo un select que me devuelve algunos datos de forma agrupada por los datos que requiero:
Código SQL:
Ver original
  1. SELECT CONVERT(VARCHAR(8), G.[GradedDate] , 108) AS 'Time',
  2.        CONVERT(VARCHAR(MAX),G.[VisitorNumber]) + '/' + CONVERT(VARCHAR(MAX),G.[HomeNumber]) AS 'NumGame', G.[VisitorTeam] + ' @ ' +G.[HomeTeam] AS 'Teams', P.[PeriodDescription],
  3.        CONVERT(VARCHAR(MAX),G.[VisitorScore]) + ' - ' + CONVERT(VARCHAR(MAX),G.[HomeScore]) AS 'Score', COUNT(*) AS 'Tickets',
  4.        SUM(H.[RiskAmount]) AS 'Risk', A.[Agent], D.[RESULT], SUM(H.[WinAmount]) AS 'Win', D.[IdGame]
  5. FROM GRADEDWAGERHEADER H, GRADEDWAGERDETAIL D, GRADEDGAME G, PERIOD P, AGENT A, WAGERTYPE W
  6. WHERE H.[IdWager] = D.[IdWager] AND
  7.       D.[IdGame]  = G.[IdGame]  AND
  8.       H.[IdAgent] = A.[IdAgent] AND
  9.       H.[IdWagerType] = W.[IdWagerType] AND
  10.       H.[SettledDate] >= CONVERT(datetime,('2014-01-12 00:00:01')) AND
  11.       H.[SettledDate] <= CONVERT(datetime,('2014-01-12 23:59:59')) AND
  12.       D.[IdSport] = P.[IdSport] AND
  13.       D.[Period]  = P.[NumberOfPeriod] AND
  14.       W.[Description] LIKE '%STRAIGHT%' AND
  15.       H.[IdAgent] = 5585
  16. GROUP BY G.[GradedDate], G.[VisitorNumber], G.[HomeNumber], G.[VisitorTeam], G.[HomeNumber], G.[HomeTeam],
  17.          P.[PeriodDescription], G.[VisitorScore], G.[HomeScore], A.[Agent],D.[RESULT], D.[IdGame]
Esta consulta me funciona perfectamente, digamos que me retorna algo como asi:

Dato 1: Hora: 10:30:00 - Juego: 10/11 - Risk: 100 - Win: 110 - Tickets: 2
Dato 2: Hora: 11:30:00 - Juego: 13/14 - Risk: 300 - Win: 310 - Tickets: 5

Pero cuando yo lo presento en el sistema que dicho sea de paso es PHP, muestro una lista con esos datos, pero cuando el usuario da click sobre Tickets por ejemplo en el Dato 1 que existen dos Tickets quiero abrir la descripcion de esos dos tickets que en ese caso estan agrupados pero quiero verlos por separadado. Alguna ayuda al respecto? espero puedan ayudarme. Gracias
  #2 (permalink)  
Antiguo 14/01/2014, 10:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como realizar el siguiente select ?

esto va en el foro de php, ya que no tiene nada que ver con la base de datos, la solucion a tu problema seria mandar el id de la transaccion(que es donde dice que son 2 tickets) y cuando despliegas el detalle de ese id puedes ver los 2 tickets que necesitas
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 14/01/2014, 10:16
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Exclamación Respuesta: Como realizar el siguiente select ?

Amigo pero la tabla que selecciono si tiene ese id pero como selecciono si ese campo es unico y al hacer el group by obviamente no me los va agrupar si me explico ?
  #4 (permalink)  
Antiguo 14/01/2014, 10:36
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como realizar el siguiente select ?

si ya tienes la informacion en un solo renglon es facil poder "agregarle" el id a tu consulta, con un ejemplo de tus datos se podria resolver mas facilmente tu duda
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 14/01/2014, 10:44
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Exclamación Respuesta: Como realizar el siguiente select ?

Amigo hagamolo con este ejemplo que encontre en la web ya que mis datos son demasiados y podemos enredarnos, mira amigo en este enlace

Alli en ese ejemplo hay una tabla llamada EMPLEADOS en el primer SELECT hacen un GROUP BY por SEXO:
Código SQL:
Ver original
  1. SELECT SEXO , COUNT(*) AS EMPLEADOS
  2. FROM EMPLEADOS
  3. GROUP BY SEXO
y el resultado es


H: 2
M: 2

Eso quiere decir que existen 2 hombres y 2 mujeres. Yo quiero una vez devuelto esos datos dar la oportunidad al usuario final dar click sobre ese 2 y ver quienes son esos 2 hombres o esas 2 mujeres. Sabes como podria hacerlo ? ayudame
  #6 (permalink)  
Antiguo 14/01/2014, 10:49
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como realizar el siguiente select ?

para esos datos sip, manda el sexo en tu select

si selecciona F:2 entonces mandas F a tu query
Código SQL:
Ver original
  1. SELECT * FROM tabla WHERE sexo='F'

para tus datos....no se si pueda aplicar del mismo modo
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por gnzsoloyo; 14/01/2014 a las 10:57
  #7 (permalink)  
Antiguo 14/01/2014, 11:16
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Exclamación Respuesta: Como realizar el siguiente select ?

Umm tienes razon amigo pero en mi caso tengo un id llamado IDWAGER y ademas tengo un IDGAME pero yo agrupo por IDGAME no lo hago por IDWAGER ya que este campo es unico y autoincrementable, yo tengo un select que busco todos los juegos cuando selecciona el ticket pero me salen 4 y deberian de salirme 2 como explique en el primer ejemplo.
  #8 (permalink)  
Antiguo 14/01/2014, 11:20
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Como realizar el siguiente select ?

si te salen 4 elimina los registros que no necesitas, en la informacion que regresa tu query tienes que tener algun campo por el cual puedas obtener la cantidad de tickets o usar mas de un campo, por ejemplo, la fecha, la hora, el idjuego etc no es que solo uses un solo campo, puedes usar todos los campos que regresa tu query :), y aqui tu problema no es tanto de bases de datos ni de programacion mas bien veo un problema de logica :S
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 14/01/2014, 11:22
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
De acuerdo Respuesta: Como realizar el siguiente select ?

Voy a analizar un poco mas mi query y te cuento como me fue... gracias

Etiquetas: select, siguiente
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 05:47.