tjlopes 0 Denunciar post Postado Junho 27, 2007 Eu vou tentar. Mas mesmo assim, se você não se importar, você teria como me mostrar como se faz isso no SQL Server? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 27, 2007 Vixe, agora não consigo, tô no trampo... teria que tirar um tempo para criar tabelas e testar conforme sua situação...Tente fazer ai com a tabela temporária, caso não consiga, tentamos pelo SQLServer... Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Junho 27, 2007 Select TOP(Select Count(distinct Medicamento) from Tabela1) Fornecedor, Medicamento, min(Valor) as Valor, min(ValorTotal) as ValorTotalFrom Tabela1 group by Fornecedor, Medicamento Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 28, 2007 Eu tentei o comando no SQL Server mas, ele me mostra o seguinte erro:Line 1: Incorrect syntax near '(' Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 28, 2007 A coisa tá feia, nem com a tabela temporária que o marcio.theis falou eu tô conseguindo. Já esgotei os meus neurônios. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 28, 2007 Estranho, pois você quem vai alimentar a tabela, somente antes não pode se esquecer de fazer a validação do valor se é maior ou menor que o já informado no BD. Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 28, 2007 Rapaz, num leva a mal não mas eu não tô conseguindo entender isso. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 28, 2007 assim naum serve??? SELECT DISTINCT(FORNECEDOR), MIN(VALOR) AS VALORFROM TBMEDIC GROUP BY FORNECEDOR Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 28, 2007 Não porque eu preciso filtrar por menor preço por tipo de produto. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 28, 2007 Select distinct(Medicamento),Fornecedor, min(Valor) as Valor, min(ValorTotal) as ValorTotalFrom Tabela1 group by Fornecedor, Medicamento assim você pega todos os medicamentos com nome distintos e com o menor valor ... Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 28, 2007 Ele tá repetindo os medicamentos. O problema todo tá sendo esse Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 28, 2007 Bom entao, eu axo mais interessante fazer como o Mario disse, criar uma tabela temporaria... dai você pode fazer algo assim: with qry do begin Close; SQL.Clear; SQL.Add('SELECT TOP 10 DISTINCT(MEDIC), MIN(VALOR) AS VALOR'); SQL.Add('FROM TABELA1 GROUP BY MEDIC'); Open; end; dai usa outra qryAux pra filtrar todos os campos nescessarios (*) da tabela1 algo assim: qryAux.SQL.Add('SELECT * FROM TABELA1 WHERE MEDIC='+ qryMedic.Text + ' AND VALOR =' + qryValor.Text); isso dentro de um laço While... e dai manda pra tabela temp e usa a mesma pra compor o relatorio ... Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 30, 2007 Rodrigo, eu não sei que mágica você fez, eu só sei que tentei n instruções SQL diferente e nenhuma delas tava dando certo, mas na hora que eu resovi usar a que você passou sem o TOP 10, funcionou tudo do jeito que eu precisava. Obrigado pela ajuda e principalmente o pessoal que teve toda a paciência para tentar me ajudar. Valeu mesmo galera. Brigadão. Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 30, 2007 heheh...nesse caso o segredo esta no Distinct e no Group by ...que deve se utilizar somente uma coluna pra agrupar senão ele bagunça a seleção dos distincts ...vlw ... fiko feliz q conseguiu resolver o seu problema ... :rolleyes: Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Junho 30, 2007 Parabéns a todos, e principalmente a você Rodrigo.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
tjlopes 0 Denunciar post Postado Junho 30, 2007 Sem querer abusar da boa vontade de vocês, me ajudem em mais uma coisa: eu resolvi fazer usando uma tabela temp só para testar e aprender (o que não custa nada), mas na hora que eu mando executar o comando me aparece a seguinte mensagem 'InvalidField name CAPECITABINA' sendo que CAPECITABINA é o nome de um produto e que stá na primeira posição do resultado da consulta. with Query1 do begin Close; SQL.Clear; SQL.Add('SELECT DISTINCT Medicamento, MIN(ValorTotal) AS ValorTotal '); SQL.Add('FROM ResultadoCotacao group by Produto'); Open; end; while not Query1.Eof do begin Query2.Close; Query2.SQL.Clear; Query2.SQL.Add('SELECT * FROM ResultadoCotacao WHERE Medicamento= '+ Query1Medicamento.Text + ' AND ValorTotal = ' + Query1ValorTotal.Text); Query2.open; end; Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Julho 1, 2007 Experimente colocar o QuotedStr ... Query2.SQL.Add('SELECT * FROM ResultadoCotacao WHERE Medicamento= '+ QuotedStr(Query1Medicamento.Text)+ ' AND ValorTotal = ' + Query1ValorTotal.Text); Compartilhar este post Link para o post Compartilhar em outros sites