Fórum Ajuda Pesquisa em SQL #417228

22/05/2012

0

Bom dia,

Estou tendo dificuldades em um consulta SQL. Estou utilizando uma tabela Access e componente ADO. Por exemplo:

No Access a tabela ASCCC009 está assim:

NUMCON____DATLAN______DESCRI______QTDE____VALOR
763________04/05/12_____CARTOES______16______3,20
765________07/05/12_____DIGITALIZ._____20_____6,75
763________12/05/12_____COPIAS________30____16,90

E a tabela ASCCCTAB está assim

NUNCOM________NOMCON
763___________ED TORINO
765___________ED PANORAMA
763____________ED TORINO

Preciso fazer uma pesquisa filtrando pelo campo NUMCON. Por exemplo
ao digitar no edit o número 763, mostre no grid a seguinte consulta:

NUMCON__NOMCON_____DATLAN_____DESCRI___QTDE____VALOR
763_____ED TORINO____04/05/12____CARTOES___16_______3,20
_____________________12/05/12_____COPIAS____30______16,90
SUBTOTAL___________________________________46______20,10

O que fiz até o momento:

SELECT a.NUMCON, b.NOMCON, a.DATLAN, a.VALOR,a.DESCRI, a.QTDE FROM ASCCC009 AS a LEFT JOIN ASCCCTAB AS b ON (a.NUMCON = b.NUMCON) ORDER BY a.NUMCON

E mostra no grid da seguinte forma:

NUMCON____NOMCON_____DATLAN_____DESCRI___QTDE_____VALOR
763_______ED TORINO____04/05/12____CARTOES___16_______3,20
763_______ED TORINO____12/05/12____COPIAS____30_______16,90

Desde já agradeço a atenção de todos.
Natanael Ferreira

Natanael Ferreira

Responder

Posts

22/05/2012

Joao Moreira

qual a dificuldade ?
Responder

Gostei + 0

22/05/2012

Joel Rodrigues

Bem, a consulta está correta e, eu diria, completa. Agora, vocÊ não vai conseguir omitir nomes repetidos e colocar um subtotal apenas com uma consulta SQL. No Delphi, você precisará de rotinas e formatações para isso. Se você usa o DBGrid nativo, ele não possui essas funcionalidades.
Eu sugiro que você deixe a consulta como está e ponha algum controle abaixo do grid para exibir o somatório. Tal valor pode ser obtido com a função SUM no SQL ou através de uma rotina que leia todos os registros da tabela e calcule a soma.
Responder

Gostei + 0

22/05/2012

Natanael Ferreira

Bem, a consulta está correta e, eu diria, completa. Agora, vocÊ não vai conseguir omitir nomes repetidos e colocar um subtotal apenas com uma consulta SQL. No Delphi, você precisará de rotinas e formatações para isso. Se você usa o DBGrid nativo, ele não possui essas funcionalidades.
Eu sugiro que você deixe a consulta como está e ponha algum controle abaixo do grid para exibir o somatório. Tal valor pode ser obtido com a função SUM no SQL ou através de uma rotina que leia todos os registros da tabela e calcule a soma.


Boa tarde Joel,

É isso mesmo que eu precisava: omitir os nomes repetidos e colocar um subtotal para cada condomínio (NUMCON) no próprio DBGrid... Como eu suspeitava isso não é possível... Tinha pensado em utilizar o SUM em algum controle abaixo, como mencionado por você, mas não seria viável pois a consulta que pretendo filtrará um intervalo de condomínios e precisaria de um sub-total para cada condomínio (NUMCON)...

Acho que o jeito é fazer a pesquisa em apenas um condomínio de cada vez e utilizar o SUM num edit ou label abaixo do DBGRID.
Responder

Gostei + 0

22/05/2012

Joel Rodrigues

Se você puder usar componentes de terceiros, eu indico o CXGrid da DevExpress, ela faz esse subtotal de acordo com o agrupamento que você escolher. Mas infelizmente, no DBGrid você não consegue, quer dizer, até onde eu sei, não. Pode ser que exista alguma rotina na internet para te auxiliar, mas eu particularmente nunca vi um uso tão complexo deste componente.

Boa sorte em seus projetos.
Responder

Gostei + 0

22/05/2012

Natanael Ferreira

Se você puder usar componentes de terceiros, eu indico o CXGrid da DevExpress, ela faz esse subtotal de acordo com o agrupamento que você escolher. Mas infelizmente, no DBGrid você não consegue, quer dizer, até onde eu sei, não. Pode ser que exista alguma rotina na internet para te auxiliar, mas eu particularmente nunca vi um uso tão complexo deste componente.

Boa sorte em seus projetos.


Joel, onde consigo este componente CxGrid da DevExpress ?
Responder

Gostei + 0

22/05/2012

Joel Rodrigues

Rapaz, é uma biblioteca paga, mas sabe como é... de repente você encontra crackeado. Sugiro procurar no blog ProgramadorOnline. Não é só um grid, você verá que são vários componentes, uma suíte muito completa.

Boa sorte.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar