olá claudio neto boa tarde ,ja tenho os pedidos separados em tabelas diferentes a tabela pessoas eu cadastro o cliente pessoa fisica e o vendedor pessoa fisica ambos tem chaves unicas e na tabela pedidosdevenda quando eu realizo um pedido de venda é gravada a chave da pessoa e a chave do vendedor.
ex cadastrei o cliente alexandre chave=5 e o vendedor carlos chave = 6 ok usando o sql seguinte
QSQL = "SELECT P.NumDoc AS [Nº DOC], iif(pe.pessoa_fisica,nome,razao_social) as PESSOA, iif(pe.pessoa_fisica,nome,razao_social) as VENDEDOR, P.Data AS DATA,"
QSQL = QSQL & " Format$(p.totalpedido,'###,##0.00') as TOTALPEDIDO, IIF(P.PENDENTE=0,'FECHADO','PENDENTE') AS SITUAÇÃO, P.Chave"
'QSQL = QSQL & " FROM PEDIDOSDEVENDA AS P INNER JOIN Pessoas pe ON Pe.Chave = P.ChavePessoa and Pe.Chave = P.Chavevendedor
beleza chavepessoa é igual a chave da tabela pessoa entao mostra e chavevendedor = chave tasbela pessoa enntão mostra
ex: num doc pessoa vendedor data situação
01 carlos carlos pendednte
mas se a chavepessoa é diferente da chavevendedor ex chavepessoa = 5 e chavevendedor = 6 são mostrados
os campos chavepessoa e chavevendedor iguais ex:
ex: num doc pessoa vendedor data situação
01 chave=5 chave=6 pendednte , mas aparece na visualização
ex: num doc pessoa vendedor data situação
01 alexandre alexandre pendednte ,deveria de aparecer a pessoa alexandre e o vendedor carlos ok
ja tentei com left join e right join mas não aparece e as vezes aparece campos em branco se eu usar sinal chavepessoa <> chavevendedor.
tentei com where mas não consegui nenhuma solução como eu faria para listar os
dados quando eles forem diferentes
''-----------------------------------------------------minha sub esta abaixo ---------'
Private Sub ListaPedidos()
Dim rsP As Recordset
Dim QSQL As String
On Error GoTo ListaPedidos_Error
QSQL = "SELECT P.NumDoc AS [Nº DOC], iif(pe.pessoa_fisica,nome,razao_social) as PESSOA,iif(pe.pessoa_fisica,nome,razao_social) as VENDEDOR ,P.Data AS DATA,"
QSQL = QSQL & " Format$(p.totalpedido,'###,##0.00') as TOTALPEDIDO, IIF(P.PENDENTE=0,'FECHADO','PENDENTE') AS SITUAÇÃO, P.Chave"
QSQL = QSQL & " FROM PEDIDOSDEVENDA AS P INNER JOIN Pessoas pe ON P.ChavePessoa = Pe.Chave and P.Chavevendedor = Pe.Chave"
5 Set rsP = DB.OpenRecordset(QSQL)
6 Set Data1.Recordset = rsP
'AtualizaRelacao
7 For i = 0 To Ordenar.UBound
8 flexPedidos.ColWidth(i) = Ordenar(i).width
9 Next
10 flexPedidos.ColWidth(i) = 0
11 Set rsP = Nothing
12 On Error GoTo 0
13 Exit Sub
ListaPedidos_Error:
14 LOG_ERRO Err.Description, Err.Number, Erl, "frmListaPedidos.ListaPedidros"
End Sub
''------------------------------------------------------------------
no iff do sql ele deveria de me mostrar o nome vendedor quando for diferente do nome do cliente que é a pessoa do pedido .
tentei usar o inner dentro de outro mas da erro assim
QSQL = QSQL & " FROM PEDIDOSDEVENDA AS P INNER JOIN Pessoas pe ON P.ChavePessoa = Pe.Chave INNER JOIN PESSOAS VE ON p.ChaveVendedor = ve.Chave" preciso realmente de ajuda grato .
Este post foi editado por Claudio Neto: 06 outubro 2009 - 14:47
Razão por editar:: Adicionado BBCode Code