Pesquisar na Comunidade
Mostrando resultados para as tags ''distinct''.
Encontrado 9 registros
-
Bom dia, estou precisando de uma ajuda na query abaixo, pois em alguns casos, por exemplo quando existe 1 item que foi selecionado duas vezes no mesmo pedido com o mesmo lote, o agrupamento mínimo (PRO.AGRUPMIN) está sendo somado no momento da divisão do (ITEM.QTDNEG/PRO.AGRUPMIN) AS EMBALAGENS na linha 6, retornando uma quantidade incorreta de embalagens para separação. Por exemplo, se eu tenho o produto de código 100 com o lote 123 selecionado duas vezes no mesmo pedido, com quantidade 20 em cada pedido e o agrupamento mínimo é 5, o resultado deveria ser: Produto 100| Lote 123| Quantidade 40| Embalagens 8 (40/5) Porém, o que está acontecendo é: Produto 100|Lote 123| Quantidade 40| Embalagens 4 (40/(5+5)) SELECT DISTINCT PAR.NOMEPARC, CAB.NUNOTA, ITE.QTDNEG, AD_LAUDO, PRO.AGRUPMIN, (ITE.QTDNEG/PRO.AGRUPMIN) AS EMBALAGENS, CAB.ORDEMCARGA AS "N_Ordem_de_Carga", ORD.PESOMAX AS "Peso_Max", ORD.CODVEICULO AS "Cod_Veiculo_da_OC", VEI.MARCAMODELO AS "Modelo_Veiculo_OC", VEI.PLACA AS "Placa_OC", VEI.PESOMAX AS "Peso_Max_Veiculo_2", TPO.DESCROPER AS "NOMETOP", ITE.CODPROD AS "Codigo_do_Produto", PRO.DESCRPROD AS "Descrição_do_Produto", ITE.CONTROLE AS "Controle", PRO.CODVOL AS "Un", PRO.PESOBRUTO AS "Peso_Bruto", SUM (ITE.QTDNEG * (CASE WHEN CAB.TIPMOV = 'D' THEN -1 ELSE 1 END)) AS "SOMA_QUANTIDADE_NEGOCIADA", SUM (ITE.QTDNEG * (CASE WHEN CAB.TIPMOV = 'D' THEN -1 ELSE 1 END)) * PRO.PESOBRUTO AS "PESO_TOTAL_ITEM" FROM TGFCAB /*CC (Empresa, CODEMP) (Centro de Resultado, CODCENCUS) (Natureza, CODNAT) (Projeto, CODPROJ) (Parceiro, CODPARC) (TOP, CODTIPOPER) CC*/ CAB, TGFORD /*CC (Empresa, CODEMP) CC*/ ORD, TGFVEI VEI, TGFITE /*CC (Empresa, CODEMP) (Local, CODLOCALORIG) CC*/ ITE, TGFPRO /*CC (Centro de Resultado, CODCENCUS) (Natureza, CODNAT) (Projeto, CODPROJ) (Parceiro, CODPARCFORN) (Produto, CODPROD) (Grupo de Produto, CODGRUPOPROD) CC*/ PRO, TGFTOP TPO, TGFPAR PAR WHERE ITE.NUNOTA = CAB.NUNOTA AND PAR.CODPARC = CAB.CODPARC -- AND CAB.CODEMP = ORD.CODEMP AND ORD.CODVEICULO = VEI.CODVEICULO AND ITE.CODPROD = PRO.CODPROD AND CAB.CODTIPOPER = TPO.CODTIPOPER AND CAB.DHTIPOPER = TPO.DHALTER AND CAB.ORDEMCARGA = ORD.ORDEMCARGA AND ((CAB.ORDEMCARGA=$P{P0})) AND PRO.USOPROD <> 'S' AND TPO.TIPMOV = 'P' AND TPO.CODTIPOPER NOT IN (123,129,121,127,39,130,3200,120,126) GROUP BY PAR.NOMEPARC, CAB.NUNOTA, CAB.ORDEMCARGA, ORD.PESOMAX, ORD.CODVEICULO, VEI.MARCAMODELO, ITE.QTDNEG, VEI.PLACA, VEI.PESOMAX, ITE.CODPROD, PRO.DESCRPROD, TPO.DESCROPER, ITE.CONTROLE, PRO.CODVOL, PRO.PESOBRUTO, PRO.AGRUPMIN, AD_LAUDO ORDER BY CAB.NUNOTA
-
Tenho uma tabela que gravo o idioma e a fluência do candidato. Por ex: Candidato Idioma Fluência 1 Inglês 1 2 Espanhol 3 3 Francês 2 Quero saber quantos candidatos tem inglês, espanhol e francês básico, avançado e intermediário. Para isso, eu faço o seguinte: select Idioma, COUNT(distinct(Candidato)) as Total, count(CASE WHEN Fluência = 1 THEN 'Básico' ELSE NULL END) as Básico, count(CASE WHEN Fluência = 2 THEN 'Intermediário' ELSE NULL END) as Intermediário, count(CASE WHEN Fluência = 3 THEN 'Avançado' ELSE NULL END) as Avançado from tabela group by Idioma O resultado é: Idioma Total Básico Intermediário Avançado Inglês 2 2 0 0 Espanhol 3 1 1 1 Francês 1 0 1 0 Porém, se tiver um registro duplicado, ou seja, de dois candidatos, se um aparecer 3 vezes e outro 2 vezes na tabela com o Inglês básico, o resultado vai ser assim: Idioma Total Básico Intermediário Avançado Inglês 2 5 0 0 Espanhol 3 1 1 1 Francês 1 0 1 0 Como eu faço nesse caso para contar somente os registros únicos?
-
AJUDAAAA Pessoal eu preciso da quantidade total de itens diferentes vendidos por cliente para cada vendedor. Eu tenho o seguinte: Vendedor | CLIENTE | PRODUTO | data_VENDA JOAO | MERCADO SORRISO | PRESUNTO | 01/07/2019 JOAO | PADARIA SONHO | PRESUNTO | 03/07/2019 JOAO | SUPERCENTER | PRESUNTO | 05/07/2019 JOAO | SUPERCENTER | PRESUNTO | 10/07/2019 LUIZ | CONFEITARIA A | AÇUCAR | 15/07/2019 PRECISO DESSE RESULTADO: Vendedor | Total clientes vendidos | total produtos diferentes vendidos POR CLIENTE JOAO | 3 | 3 * LUIZ | 1 | 1 *O total é 3 porque eu preciso considerar a venda do produto por cliente, e não somente por vendedor. Quando eu utilizo o group by ele considera apenas o total de produtos vendidos por VENDEDOR, e não considera a venda para clientes diferentes. SELECT distinct vendedor, count(distinct cliente), count(distinct produto) FROM FATO_VENDAS a GROUP BY vendedor Por favor me ajudem!!!
-
Prezados, Estou precisando somar a coluna QUANTIDADE que são consultadas com um "DISTINCT material". Segue código até o "DISTINCT material" ... $busca_query = mysql_query("SELECT distinct material FROM material WHERE material LIKE '%$busca%' AND quantidade LIKE '%$busca1%' ORDER BY material ASC")or die(mysql_error());//faz a busca com as palavras enviadas if (empty($busca_query)) { //Se não achar nada, lança essa mensagem echo "Nenhum registro encontrado."; } // quando existir algo em '$busca_query' ele realizará o script abaixo. while ($dados = mysql_fetch_array($busca_query)) { ?> <tr width="100%"> <td width="82%"><?php echo "$dados[material]<br />";?></td> <td width="10%"><?php echo "$dados[quantidade] <br />";?> ...
-
Caros estou com uma dúvida em uma consulta para montar um relatório, utilizando um distinct. Minha duvida é tenho uma tabela com N campos, gostaria de fazer o distinct de apenas 03 campos e os demais quero que busque todos. Eu tenho como dentro deste distinct selecionar apenas os 03 primeiros campos e os demais podem ser normais, segue abaixo. SELECT DISTINCT prot_guia, prot_data, prot_id, produto, quantidade, valor FROM pedidos
-
Boa noite pessoal! Dúvida muito básica para alguns aqui, mas que está me torrando os neurônios (podem acreditar). SELECT usuarios_nome, usuarios_login, usuarios_cc, usuarios_depto FROM usuarios WHERE usuarios_ativo = 1 ORDER BY usuarios_nome ASC A query acima me retorna TODOS os registros que estão ativos no Banco de Dados. Minha questão é: Como retornar todos os registros que têm os nomes de usuários repetidos? Exemplo de resultado pretendido: usuarios_nome | usuarios_login | usuarios_cc | usuarios_depto ------------------------------------------------------------------------------------ ANA MARIA | lg0001 | 12345 | Administracao ANA MARIA | lg0002 | 12347 | Fiscal BETHANIA SILVA | lg0026 | 19275 | Fiscal BETHANIA SILVA | lg0028 | 09162 | TI BETHANIA SILVA | lg0029 | 65281 | Recebimento CARLOS PEREIRA | lg0040 | 25167 | Atendimento CARLOS PEREIRA | lg0061 | 27153 | Atendimento Sempre reportar usuários com nomes repetidos! Obrigado! No aguardo de uma luz!
-
Boa tarde, estou com um problema em meu sql, estou fazendo um relatório onde tenho que obter o valor da soma da venda de tickets de bilheteria de um cinema. tentei fazer um sum utilizando case e distinct mas infelizmente está acusando erro de sintaxe, por favor se alguém puder ajudar ficarei imensamente agradecido. segue o código abaixo. SELECT DATE_FORMAT(D.Data,'%d/%m/%Y') as Data, H.Horario, L.Linguagem, G.Genero, I.Indicacao, E.InteiraEspetaculo, P.EmpresaGrupo, P.Representante, E.Espetaculo, COUNT(DISTINCT(VI.ID)) AS QtdPublico, SUM(CASE WHEN DISTINCT(VI.ID) THEN VI.Total end) AS Total, <--- essa linha. SUM(DISTINCT(OC.Valor)) AS OutrosCustos FROM tblEspetaculo AS E INNER JOIN tblLinguagem as L ON L.ID = E.fk_IDLinguagem INNER JOIN tblIndicacao as I ON I.ID = E.fk_IDIndicacao INNER JOIN tblProdutor as P ON P.ID = E.fk_IDProdutor INNER JOIN tblGenero as G ON G.ID = E.fk_IDGenero INNER JOIN tblOutrosCustos as OC ON E.ID = OC.fk_IDEspetaculo INNER JOIN tblTaxas as T ON E.ID = T.fk_IDEspetaculo INNER JOIN tblData as D ON E.ID = D.fk_IDEspetaculo INNER JOIN tblHorario as H ON D.ID = H.fk_IDData INNER JOIN tblVendaIngresso as VI ON H.ID = VI.fk_IDHorario INNER JOIN tblIngresso as ING ON ING.ID = fk_IDIngresso WHERE DATE_FORMAT(VI.Data,"%Y") = "2015" GROUP BY E.ID, D.Data, H.Horario Obs: foi testado todo o sql sem aquela linha e funciona perfeitamente. Abraço.
-
Tenho na tabela as seguinte colunas: ID, Contrato, OrdServico, TipoServico, CodFechamento, DataFechamento Aí preciso fazer um um sintético para mostrar a contagem por número de contrato (lembrando que neste caso o numero de contrato pode se repetir várias vezes, uma vez que um número de contrato pode ter várias Ordens de Serviço). O problema está em que se o número do contrato repetir em datas diferentes aí tem que contar, atualmente uso: "SELECT COUNT( DISTINCT contrato ) AS agenda, SUM( IF( codfec > '399', 1, 0 ) ) AS executadas, SUM( IF( codfec < '400' AND codfec <> '', 1, 0 ) ) AS quebra FROM ( SELECT DISTINCT contrato, codfec, rota, b.cod FROM rota a LEFT JOIN tiposervicos b ON a.tiposervico = b.descricao WHERE b.cod = '1' AND rota = 'FIELD' AND MONTH(agenda) = MONTH(CURDATE()) )r GROUP BY rota" funciona direitinho, exceto o fato que se tem o mesmo número de contrato em dias diferente conta como 'um' só. Alguém tem uma luz??? Grato
-
Primeiramente boa tarde. Então, eu tenho uma tabela que lista a compra de Produtos para empresa, nessa tabela tem um coluna com a ID do Produto e uma coluna com a Data de compra. Agora eu preciso de um código para selecionar as ID dos Produtos que estiverem dentro de um intervalo de datas que eu definir. A ID do Produto SÓ pode estar entre esse intervalo, se ele estiver nesse intervalo mas também tiver antes ou depois desse intervalo eu não posso selecioná-lo . Eu já tentei de tudo, Select com Distinct e tudo mais, porém não consegui chegar em alguma solução. O meu php já está pronto, porém não consigo fazer o select correto para pegar somente esses valores. Alguém pode ajudar? Obrigado.