INNER JOIN
Amigos,
ka estou eu com mais uma dúvida;
Tenho em banco MYSQL duas tabelas (vendas e meta)
via FTP os vendedores atualização os dados das vendas realizadas.
via FTP os vendedores atualização os dados das metas mensais.
coloquei em um listview os dados de positivação de produtos e clientes fazendo uma união entre o que foi vendido e o que falta para vender;
conforme imagem (abaixo)
Entretanto, na união que fiz se o vendedor não realizou ainda nenhuma venda de um determinado produto não está aparecendo a meta.
Para alcançar o objetivo do trabalho preciso que quando não tiver vendas realizadas do produto apareça a meta com saldo (-).
Alguem tem uma sugestão para código ou de outro código.
Public Sub Qry_abre()
Dim newlist As ListItem
listameta.ListItems.Clear
mycon.Open [Ô]dsn=asgard_salles[Ô]
With mycmd
.ActiveConnection = mycon
.CommandType = adCmdText
If frminicial.txtemp = [Ô]170[Ô] Then
.CommandText = [Ô]SELECT distinct(vendas.codigo_produto), vendas.descricao, count(distinct(vendas.cliente))as cliente1, meta.cliente, meta.grupo FROM meta inner join vendas on meta.produto = vendas.codigo_produto group by vendas.codigo_produto, vendas.descricao[Ô]
Set myrs = .Execute
ElseIf frminicial.txtemp = [Ô]190[Ô] Then
.CommandText = [Ô]SELECT distinct(vendas190.codigo_produto), vendas190.descricao, count(distinct(vendas190.cliente))as cliente1, meta.cliente, meta.grupo FROM meta inner join vendas190 on meta.produto = vendas190.codigo_produto group by vendas190.codigo_produto, vendas190.descricao[Ô]
Set myrs = .Execute
End If
End With
Do Until myrs.EOF
Set newlist = listameta.ListItems.Add(, [Ô] Key [Ô] & myrs([Ô]codigo_produto[Ô]), myrs([Ô]codigo_produto[Ô]))
newlist.SubItems(1) = [Ô][Ô] & myrs([Ô]grupo[Ô])
newlist.SubItems(2) = [Ô][Ô] & myrs([Ô]descricao[Ô])
newlist.SubItems(3) = [Ô][Ô] & myrs([Ô]cliente[Ô])
newlist.SubItems(4) = [Ô][Ô] & myrs([Ô]cliente1[Ô])
saldo = myrs!cliente1 - myrs!cliente
newlist.SubItems(5) = saldo
newlist.SubItems(6) = [Ô][Ô] & myrs([Ô]codigo_produto[Ô])
myrs.MoveNext
Loop
myrs.Close
Set myrs = Nothing
mycon.Close
End Sub
Desde já agradeço.
ka estou eu com mais uma dúvida;
Tenho em banco MYSQL duas tabelas (vendas e meta)
via FTP os vendedores atualização os dados das vendas realizadas.
via FTP os vendedores atualização os dados das metas mensais.
coloquei em um listview os dados de positivação de produtos e clientes fazendo uma união entre o que foi vendido e o que falta para vender;
conforme imagem (abaixo)
Entretanto, na união que fiz se o vendedor não realizou ainda nenhuma venda de um determinado produto não está aparecendo a meta.
Para alcançar o objetivo do trabalho preciso que quando não tiver vendas realizadas do produto apareça a meta com saldo (-).
Alguem tem uma sugestão para código ou de outro código.
Public Sub Qry_abre()
Dim newlist As ListItem
listameta.ListItems.Clear
mycon.Open [Ô]dsn=asgard_salles[Ô]
With mycmd
.ActiveConnection = mycon
.CommandType = adCmdText
If frminicial.txtemp = [Ô]170[Ô] Then
.CommandText = [Ô]SELECT distinct(vendas.codigo_produto), vendas.descricao, count(distinct(vendas.cliente))as cliente1, meta.cliente, meta.grupo FROM meta inner join vendas on meta.produto = vendas.codigo_produto group by vendas.codigo_produto, vendas.descricao[Ô]
Set myrs = .Execute
ElseIf frminicial.txtemp = [Ô]190[Ô] Then
.CommandText = [Ô]SELECT distinct(vendas190.codigo_produto), vendas190.descricao, count(distinct(vendas190.cliente))as cliente1, meta.cliente, meta.grupo FROM meta inner join vendas190 on meta.produto = vendas190.codigo_produto group by vendas190.codigo_produto, vendas190.descricao[Ô]
Set myrs = .Execute
End If
End With
Do Until myrs.EOF
Set newlist = listameta.ListItems.Add(, [Ô] Key [Ô] & myrs([Ô]codigo_produto[Ô]), myrs([Ô]codigo_produto[Ô]))
newlist.SubItems(1) = [Ô][Ô] & myrs([Ô]grupo[Ô])
newlist.SubItems(2) = [Ô][Ô] & myrs([Ô]descricao[Ô])
newlist.SubItems(3) = [Ô][Ô] & myrs([Ô]cliente[Ô])
newlist.SubItems(4) = [Ô][Ô] & myrs([Ô]cliente1[Ô])
saldo = myrs!cliente1 - myrs!cliente
newlist.SubItems(5) = saldo
newlist.SubItems(6) = [Ô][Ô] & myrs([Ô]codigo_produto[Ô])
myrs.MoveNext
Loop
myrs.Close
Set myrs = Nothing
mycon.Close
End Sub
Desde já agradeço.
substitua os [Ô]inner join[Ô] por [Ô]left join[Ô] que vai aparecer o resultado do que tem na tabela meta tendo ou não registros relacionados nas tabelas vendas* .
espero ter ajudado.
espero ter ajudado.
somente esclarecendo o left ou right join, isto significa que se uma tabela do inner nao tiver relação alguma com a outra, a tabela da left (esquerda) ou right (direita) é quem vai aparecer, por exemplo, vc faz um tabela 1 left join tabela2, os resultados da tabela1 é que vai aparecer... quando vc usa o inner, vc esta forçando a aparecer somente os dados que existem relação entre eles...
o [Ô]inner join[Ô] obriga ter relacionamento entre as tabelas, já o left e right join incluem os valores dos campos que tem relacionamento e deixam em branco os que não tem... isso dito a grosso modo
Amigos,
Muito obrigado pelas resposta, vcs sao feras.
att
Ricardo Nantes
Muito obrigado pelas resposta, vcs sao feras.
att
Ricardo Nantes
Tópico encerrado , respostas não são mais permitidas