| id | bigint(20)
| data_admissao | date
| data_nascimento | date
| id_pessoa | bigint(20)
Até o presente momento tenho a seguinte query : select *from funcionario join venda on funcionario.id = venda.id_funcionario and funcionario.id = (aqui dentro vem a sub query que traz o maior vendedor) limit 1;_
Não sei muito de banco de dados, mas primeiro eu criaria uma busca agrupando e depois juntaria as tabelas:
Contando e agrupando as vendas
SELECT id_funcionario COUNT(*) AS "vendas" FROM VENDA GROUP BY id_funcionario ORDER BY COUNT(*) DESC
Juntando as tabelas:
SELECT * FROM funcionario JOIN (SELECT id_funcionario COUNT(*) AS "vendas" FROM VENDA GROUP BY id_funcionario) AS tb_vendas ON funcionario.id = tb_vendas.id_funcionario ORDER BY vendas DESC limit 1
acho que esta tabela venda, esta mal estruturada. [quote=“programador1225, post:1, topic:358738”]
| id | bigint(20)
| horario | datetime
| valor_total | decimal(7,2)
| id_funcionario | bigint(20)
| id_cliente | bigint(20)
[/quote]
talvez esteja faltado ai o valor de cada venda, desta forma ao inserir uma venda , vai inserir junto o valor da venda em si, ai é só fazer um select para todas as vendas de um determinado vendedor, e no final somar o valor de cada uma. se quiser saber o total de vendas, nesta tabela vendas mesmo, coloque ai uma coluna ex numero_de_venda, a cada venda adiciona o numero da venda em si nesta coluna , depois é só fazer também um select count de todas colunas numero_de_venda de um determinado vendedor X.