Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: leliCabello en 22 Octubre 2010, 20:04 pm



Título: consultas group by
Publicado por: leliCabello en 22 Octubre 2010, 20:04 pm
estoy tratando de hacer una consulta con group by me funciona muy bien el campo identificador y razon, pero como hago para completar los demas campos, ya q si ingreso un campo en el select, desaparece identificador y todo se malogra, ¿como hag? ¿o q estoy haciendo mal?

Código:
adoConsulta.RecordSource = "SELECT razon,identificador, MAX(tipocomprobante) FROM vistaFactura WHERE (cod_tipodeservicio=2)and(identificador IS NOT NULL) AND (anulado = 'No') AND identificador like'" & txtDominio.Text & "%' group by identificador, razon"
    adoConsulta.Refresh


Título: Re: consultas group by
Publicado por: Shell Root en 23 Octubre 2010, 00:29 am
estoy ...pero como hago para completar los demas campos,
WTF! Explicate mejor.


Título: Re: consultas group by
Publicado por: leliCabello en 23 Octubre 2010, 02:33 am
osea para llenar los campos vacios, le agrego uno por uno el nombre de los campos a mi consulta, cosa que quedaria asi:
Código:
adoConsulta.RecordSource = "SELECT razon,identificador,login,password, MAX(tipocomprobante) FROM vistaFactura WHERE (cod_tipodeservicio=2)and(identificador IS NOT NULL) AND (anulado = 'No') AND identificador like'" & txtDominio.Text & "%' group by identificador, razon,login,password"
le fui agregando login y password, pero al ejecutar se borra toooodo del campo dominio, mira!..... nose como hacer para llenar los demas campos... ¿q hago? pero con la misma consulta, porque lo q me muestra en la figura anterior esta bien me muestra en orden alfabetico y un dominio x cliente ya q eso es lo q quiero.
(http://img547.imageshack.us/img547/7729/host2.jpg)


Título: Re: consultas group by
Publicado por: Shell Root en 23 Octubre 2010, 03:03 am
Aún sigo sin entender, a ver, supongamos que tenemos la siguiente tabla.

Tabla 1:
sNombre      sApellido   sEdad   sTelefono   sNick
Alex            Jurado       19        3333333     Shell Root
Andres        Lopez         18       2222222      Andreus
Carlos         Marin         17        1111111     CarlosM

Y quieres que se ordene de que forma?


Título: Re: consultas group by
Publicado por: leliCabello en 23 Octubre 2010, 03:15 am
Código:
adoConsulta.ConnectionString = cn
    adoConsulta.RecordSource = "SELECT razon,identificador, MAX(tipocomprobante) FROM vistaFactura WHERE (cod_tipodeservicio=2)and(identificador IS NOT NULL) AND (anulado = 'No') AND identificador like'" & txtDominio.Text & "%' group by identificador, razon"
    adoConsulta.Refresh
con esta consulta solo me muestra 2 campos como se ve en la primera figura, como hago para que los DEMAS campos(TIPO,SERIE,NUMERO, FECHA, DESCRIPCION,..) no esten en blanco y muestren datos tal como lo hace CLIENTES Y DOMINIOS...ya q no puede estar asi en blanco :-(


Título: Re: consultas group by
Publicado por: 43H4FH44H45H4CH49H56H45H en 23 Octubre 2010, 06:46 am
Viendo de pasada tu consulta, utiliza HAVING con GROUP BY y no lo uses con WHERE.
Para hacer la consulta (SELECT) utiliza tabla.columna para hacer mas legible el code.

Creo que mejor colocas tu Tabla de la BD para ubicarse mejor.

Primero debes hacer las consultas en el mismo servidor y luego cuando funcione como quieres, recien lo agregas a tu programa.


Título: Re: consultas group by
Publicado por: leliCabello en 23 Octubre 2010, 17:56 pm
hize como me dijiste hize mi consulta en mi serv. al agregarle mas campos a mi consulta, se malogra todo nose q hacer?? y me sale asi. Espero q me puedan ayudar :-(:
ya no sale un solo dominio x cliente como se ve en la gif Nro 1  :-( :-( :-(


Título: Re: consultas group by
Publicado por: 43H4FH44H45H4CH49H56H45H en 23 Octubre 2010, 20:45 pm
No hiciste lo que te dije, asi que cito mi propia respuesta:
Viendo de pasada tu consulta, utiliza HAVING con GROUP BY y no lo uses con WHERE.
Para hacer la consulta (SELECT) utiliza tabla.columna para hacer mas legible el code.
Si subes la tabla que utilizas, no lo hagas con una imagen hazlo como code para que se pueda copiar y hacer una consulta similar.
Prueba lo que te dije y posteas nuevamente si tienes algun error.


Título: Re: consultas group by
Publicado por: leliCabello en 23 Octubre 2010, 22:15 pm
la cosa era ponerlo asi:
Código:
adoConsulta.RecordSource = "SELECT razon,identificador, MAX(tipocomprobante)AS Tipo,MAX(serie)AS Serie,MAX(cod_comprobante)AS Número, MAX(des_servicio) AS Descripcion, MAX(fechainicio)AS FechaInicio,MAX(fechafin)AS FechaFin, MAX(login)AS Login, MAX(password)AS Password FROM vistaFactura WHERE (cod_tipodeservicio=2)and(identificador IS NOT NULL) AND (anulado = 'No') AND (identificador like'" & txtDominio.Text & "%') group by identificador, razon"
y funciona bien, el problema es q cuando uso esta linea para testo " MAX(des_servicio) AS Descripcion" aj ejecutar en el vb6 ese campo sale en blanco, pero en el sql si sale toda la descripcion del servicio :huh:


Título: Re: consultas group by
Publicado por: 43H4FH44H45H4CH49H56H45H en 24 Octubre 2010, 20:16 pm
La consulta que realizas tiene varias fallas (una mala sintaxis de SQL y falta de conocimiento del mismo), no hay mucha relación para utilizar el GROUP BY de esa manera, pero puesto que es tu programa y te funciona mejor lo dejamos ahi...
Tu problema actual es de vb6, deberias ponerlo al foro correspondiente.


Título: Re: consultas group by
Publicado por: leliCabello en 25 Octubre 2010, 16:21 pm
COMO LO HAGO ENTONCES, AL MENOS DAME UNA SINTANXIS DE COMO HACERLO CORRECTAMENTE Y SE QUE ME AYUDARIAS MUUUCHO :-\