Agrupamientos

Buenas tardes tengo la siguiente consulta:
select
fac, count(posicion) as posicion,nroreg, codpais
from factura WHERE IdEmpresa = 1 and do = 'mido123'
group by posicion, nroreg, codpais,fac
Genera 4 registros
Pero cuando agrego más campos me genera más registro y solo necesito que me genera los cuatro registro con todos los campos agrupando por los cuatro campos de la primera consulta, tengo la siguiente consulta:
selectIdEmpresa, id,do,conse,conse2,dbo.factura.fac, enlace,conse3,fecfac,referencia,marca,count(posicion) as posicion,
tipo,clase,modelo,anofab,otrascar,unidad,descant,descant2,eu,cantidad,cant,precio,precioorig,preciousd,preciousd,pregasusd,
valtotal,valtotusd,valusd,codpais,nroreg,pesobr,pesont,nomcomer,descripc,tasacambio,poraran,valaran,poriva,valiva,
otro_gasto,gastoadici,gastoadi,gastoemb,gasemb,descuento,valflete,otrogas,dumping,salvaguar,dercompe,sanciones,rescate,
ajusindiv,valsegu,valcif,flete,carpeta,embarque,ordcompra,tipo_neg,tipo_neg,lugar,codprovee
from factura WHERE IdEmpresa = 1 and do = 'mido123'
group by IdEmpresa, id,do,conse,conse2,dbo.factura.fac, enlace,conse3,fecfac,referencia,marca,posicion,
tipo,clase,modelo,anofab,otrascar,unidad,descant,descant2,eu,cantidad,cant,precio,precioorig,preciousd,preciousd,pregasusd,
valtotal,valtotusd,valusd,codpais,nroreg,pesobr,pesont,nomcomer,descripc,tasacambio,poraran,valaran,poriva,valiva,
otro_gasto,gastoadici,gastoadi,gastoemb,gasemb,descuento,valflete,otrogas,dumping,salvaguar,dercompe,sanciones,rescate,
ajusindiv,valsegu,valcif,flete,carpeta,embarque,ordcompra,tipo_neg,tipo_neg,lugar,codprovee.
Agradezco de antemano quien me pueda ayudar.

1 respuesta

Respuesta
1
La consulta agrupa por todos los campos que añadas en el select.
Y hay campos que te rompen toda agrupación posible.
Los campos de tipo fecha se agrupan si coincide la fecha y la hora hasta los segundos.
Las referencias de factura supongo que son todas distintas por lo que no se puede agrupar ningún registro.
Tienes campos de precio cantidad
Para poder hacerlo, en cada campo debes indicar qué valor quieres ver, la suma, el mínimo, el máximo, la media.
Piensa que si el registro 1 te devuelve en el count 20 quiere decir que hay 20 registros agrupados en esa línea, tienes que decirle a SQL de los 20 que fecha quieres que te muestre, la mayor, la menor. Que referencia de factura, que precio.
De todas formas si me dices que es lo que tiene que hacer a lo mejor se puede hacer de otra forma porque no es posible que muestres todos los campos de la factura y que le pidas que te cuente cuantas veces se repite el campo posición, te va a devolver siempre 1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas