como faço para agrupar por os e soma valores, s.vrtlsdesc , vrtlcdesc,

03/10/2017

0

ADOQconsos.SQL.Add('SELECT F.nome,M.nome,V.Placa,V.chassis,V.modelo,S.vrtldesc,S.desc_Esp,S.vrtlcdesc,S.Vrtlsdesc,S.IDSAIDA,S.DATA,S.OS,C.celular,C.NOME FROM tb_saidas S '
+' INNER JOIN tb_veiculo_cli V ON S.idveic = V.idveic'
+' INNER JOIN tb_vendedor F ON S.idvend = F.idvend '
+' INNER JOIN tb_mecanico M ON S.idmec = M.idmec'
+' INNER JOIN tb_cliente C ON S.idcliente = C.CÓDIGO WHERE C.NOME LIKE '+#39+'%'+Edit6.Text+'%'+#39' GROUP BY S.os ;');
ADOQconsos.Open;
end

em delphi7
Marcus

Marcus

Responder

Posts

05/10/2017

Luiz Vichiatto

O que realmente você que com esta consulta?
Neste formato irá ficar igual ela está apenas com uma coluna de soma, sendo o mesmo valor do campo.
Precisa dos dados que se repetem das tabelas, ids e chaves primárias melhor não utilizar, datas são pontos de quebra e devem iniciar na linha de quebra.
Melhor você reorganizar, retirar os id's, e os itens repetidos (campos Nome ou Descrição de várias tabelas)
Você quer a saída de todos os itens alterados nos veículos dos clientes



NomeCliente, VeículoCliente, ServicoEfetuado, Soma(ServicoValorServico)
Group By NomeCliente, VeiculoCliente, ServicoEfetuado


ADOQconsos.SQL.Add('
SELECT 
	S.OS, 
	S.DATA, 
	F.nome, 
	M.nome,
	V.Placa,
	V.chassis,
	V.modelo,
	S.vrtldesc, 
	S.desc_Esp,
	C.celular, 
	C.NOME,
	SUM(S.vrtlcdesc), 
	SUM(S.Vrtlsdesc),
	')
ADOQconsos.SQL.Add('FROM tb_saidas S ')
ADOQconsos.SQL.Add(' INNER JOIN tb_veiculo_cli V ON S.idveic = V.idveic ')
ADOQconsos.SQL.Add(' INNER JOIN tb_vendedor F ON S.idvend = F.idvend ')
ADOQconsos.SQL.Add(' INNER JOIN tb_mecanico M ON S.idmec = M.idmec')
ADOQconsos.SQL.Add(' INNER JOIN tb_cliente C ON S.idcliente = C.CÓDIGO WHERE C.NOME LIKE '+#39+'%'+Edit6.Text+'%'+#39' GROUP BY S.os ')
ADOQconsos.Open;
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar