Hola tengo dos dudas con distinc y delphi, trabajo con delphi2010,BD(DBF), con ADOConnection1, ADODataSet1, DataSource1, ADOQuery1, DBGrid1 y mi
tabla es algo mas o menos asi:
Código:
campo1_|_ campo2 _|campo3 | campo4 | campo5
registro1| 1 | 1 | 1 | 0 | 1
registro2| 2 | 2 | 1 | 1 | 2
registro3| 3 | 1 | 2 | 3 | 2
registro4| 3 | 3 | 2 | 4 | 5
registro5| 5 | 3 | 2 | 2 | 6
registro6| 4 | 3 | 1 | 1 | 6
bien si yo hago esto
Código Delphi
[-]
...
...
form1.ADOQuery1.sql.add('SELECT distinc campo1 from tabla1');
form1.ADOQuery1.execsql;
form1.ADOQuery1.Active:=true;
..
obtengo algo asi en un dbgrid
Código SQL
[-]
|campo1| |campo2|
1 1
2 si fuera el campo 2 seria asi.. etc 2
3 3
4
5
esto solo es por un campo (aqui parte de mi segunda duda que la planteare mas adelante)
Mi pregunta es, como hago para saber el total de los valores diferentes que distinc encuentra, y si es posible como puedo agregarlos al grid para que quede algo similar a esto
Código SQL
[-]
|campo1| valores |
1 1
2 1
3 2
4 1
5 1
donde campo es el numero arrojado por distinc y "valores" es el numero total de ocurrencias que hay por cada tipo diferente que encuentra distinc...
Y la otra duda o pregunta mas bien es si es posible utilizar distinc con diferentes campos a la ves, digamos que mi consulta seria algo asi..
Código SQL
[-]
SELECT distinc campo1,campo2,campo3,campo4 from tabla1
o asi
SELECT (distinc campo1,campo2,campo3,campo4) from tabla1 o
o asi
SELECT distinc (campo1),distinc (campo2),distinc (campo3),distinc (campo4) from tabla1
pregunto por que de cualquiera de esas formas me manda un error de sintaxis, o comillas perdidas y por mas que he movido no encuentro la forma
el resultado que esperaria en el grid seria algo mas o menos asi
Código SQL
[-]
campo1_|_ campo2 _|campo3 | campo4 |
| 1 | 1 | 1 | 0 |
| 2 | 2 | 2 | 1 |
| 3 | 3 | | 2 |
| 4 | | | 3 |
| 5 | | | 4 |
| | | | |
Si se preguntan por que asi, es para saber el numero de ocurrencias que hay por cada campo, uso un dbgrid por que es lo que se me ocurrio pero si hubieran otros componentes o alguna otra manera que me pudiera servir pues es bienvenida...
si no me supe explicar bien por favor diganmelo para tratar de explicar mas...
por su atencion gracias