consultas group by

Iniciado por leliCabello, 22 Octubre 2010, 20:04 PM

0 Miembros y 1 Visitante están viendo este tema.

leliCabello

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?

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

Shell Root

Cita de: leliCabello en 22 Octubre 2010, 20:04 PMestoy ...pero como hago para completar los demas campos,
WTF! Explicate mejor.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

leliCabello

osea para llenar los campos vacios, le agrego uno por uno el nombre de los campos a mi consulta, cosa que quedaria asi: 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.


Shell Root

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?
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

leliCabello

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 :-(

43H4FH44H45H4CH49H56H45H

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.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

leliCabello

#6
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  :-( :-( :-(

43H4FH44H45H4CH49H56H45H

No hiciste lo que te dije, asi que cito mi propia respuesta:
Cita de: 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.
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.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

leliCabello

la cosa era ponerlo asi: 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:

43H4FH44H45H4CH49H56H45H

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.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W