Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

shumi

simplificar opções

Recommended Posts

bem o negocio é usar o GROUP BY<% Sql = "Select pontuacao_vendedores.*, cad_vendedores.* From pontuacao_vendedores,cad_vendedores Where pontuacao_vendedores.cod_vendedor = cad_vendedores.cod_vendedor GROUP BY cad_vendedores.cod_vendedor;"Set rs=Conexcao.Execute(sql) %>mas é quase certo de dar erro nesta primeira tentativa...mas veja ai

Com esse
<% Sql = "Select pontuacao_vendedores.*, cad_vendedores.* From pontuacao_vendedores,cad_vendedores Where pontuacao_vendedores.cod_vendedor = cad_vendedores.cod_vendedor GROUP BY cad_vendedores.cod_vendedor;"Set rs=Conexcao.Execute(sql) %>
deu o erro:Microsoft OLE DB Provider for ODBC Drivers erro '80040e14' [Microsoft][Driver ODBC para Microsoft Access] Não é possível agrupar campos selecionados com '*' (pontuacao_vendedores). /incentivos_lg/pontos_vendedores.asp, line 54e com o que estava ele somente duplica. se eu inseriro 3 vezes ou + ele não repete ele só soma.se eu insiro 3 vezes por exemplo ele fica:Rodrigo 100Rodrigo 100Tati 200Tati 200Mari 10 por exemplo!!!abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

com certeza dá para fazer com uma unica sql mas não estou vendo como

Compartilhar este post


Link para o post
Compartilhar em outros sites

É eu tenho 2 SQL

 

<%   Sql = "Select Distinct pontuacao_vendedores.*, cad_vendedores.* From pontuacao_vendedores,cad_vendedores Where pontuacao_vendedores.cod_vendedor = cad_vendedores.cod_vendedor;"Set rs=Conexcao.Execute(sql) %>

e

 

<%	Sql1 = "Select Sum(produtos.ponto) AS pontos From pontuacao_vendedores,produtos Where pontuacao_vendedores.cod_produtos = produtos.cod_produtos AND pontuacao_vendedores.cod_vendedor = "& RS("cod_vendedor") &";"	Set rs1=Conexcao.Execute(sql1) %>

Mas se você não souber eu pulo essa parte por enquanto!

Ai eu gostaria que você me ensinasse a calcular a pontuação do gerente, subgerente e da Loja

 

Funciona assim:

 

Tenho uma Tabela para cada pontuação(pontuacao_vendedores, pontuacao_subgerente, pontuacao_gerente e pontuacao_loja) e tenho uma tabela com o cadastro da loja(cad_lojas) é nesse cadastro que o usuario cadastra o gerente e o subgerente e quando o vendedor é cadastrado ele puxa a loja que ele "trabalha".

A pontuação do gerente e do subgerente é 20% do que o vendedor da loja que ele "comanda" vendeu.

Ai estava pensando em somar o total da loja e pegar os 20% está certo???

ou tenho que fazer 1 por 1???

 

Obrigado

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra fazer a pontuação do gerente e subgerente teria que fazer um relacionamento do cod_vendedor que esta na tabela pontuacao_vendedor com o cod_vendedor que está na tabela cad_vendedores e fazer uma "ligação" entre o cod_vendedor e o cod_loja da mesma tabela ai fazer um relacionamento do cod_loja que está na tabela cad_vendedor com a tabela cad_loja e nesta tabela pegar o gerente e tirar 20% das vendas da tabela pontuacao_vendedor.MEuuuuuuuuuuuuuuuuu muito fod...!!!!!como faço esta façanha???abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer as ligações eu fiz assim:

 

<% Sql = "Select pontuacao_vendedores.*, cad_vendedores.*, cad_loja.*, From pontuacao_vendedores,cad_vendedores,cad_loja Where pontuacao_vendedores.cod_vendedor = cad_vendedores.cod_vendedor;"

só que no finalzinho onde tem o where eu não sei como posso continuar...

 

Como que posso continuar???

e esta certo o começo??? eu coloquei a , e coloqui a outra tabela que preciso ligar!!!!!

 

abraços!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tiozinho acho que voce ta se atraplhando em seu select

 

talvez seja melhor usar o JOIN no SQL

 

assim ó

 

http://www.w3schools.com/sql/sql_join.asp

 

com o JOIN acho que voce mata este WHERE ai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

tiozinho acho que voce ta se atraplhando em seu selecttalvez seja melhor usar o JOIN no SQLassim ó http://www.w3schools.com/sql/sql_join.aspcom o JOIN acho que voce mata este WHERE ai...

Ok tiozinho!!!!valeu vou dar uma estudada pra fazer esse SQL loko!ai qualquer coisa corro aqui!ValeuE FELIZ NATAL PRA você TUDO DE BOM!!!!!!!ABRAÇOS!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok para voce tambem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera,eu estava estudando pra fazer esse comando SQL acima que o Mario me deu a dica e vi que como eu quero fazer seria muito complicado, pois alem dos 20% pro gerente e subgerente tera os pontos extras que eles ganham se a loja estiver bem arrumada e etc...Entao não daria pra somente eu somar os pontos de cada vendedor e tirar os 20% então pensei em fazer no arquivo onde coloco os pontos dos vendedores quando escolher o vendedor ele "puxar" quem é o gerente e o subgerente do vendedor e jogar nas tabelas de cada um os 20%!mas não sei fazer isso!como que posso fazer esse arquivinho????eu tenho no meu banco de dados uma tabela com a pontuação do vendedor, outra com a do gerente e outra com a do sub-gerente.e meu banco de dados onde antes ele jogava o codigo do vendedor e o codigo do produto para somar os pontos, agora ele esta o nome do vendedor e esta indo os ponto do produto "automatico"agradeceria muito quem pudesse me dar essa ajuda!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou meio confuso a explicação, mas seria mais ou menos assim :

<%set Conexcao = Server.CreateObject("ADODB.Connection")Conexcao.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MaPpath("db_lg.mdb")Conexcao.openIf NOT (Session("logado")) ThenResponse.Redirect "index.asp"Response.EndEnd IfDim Conexcao,sql,rs,verifica,cod_vendedor,cod_produto,blnEnvioEmail,intRetorno,varcodnome = Request.Form("nome")ponto = Request.Form("ponto")Response.Expires = 0	sSQL = "INSERT INTO pontuacao_vendedor(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno	'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O GERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE E		sSQL = "INSERT INTO pontuacao_gerente(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno		'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O SUBGERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE  E		sSQL = "INSERT INTO pontuacao_subgerente(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetornoset RS=nothingConexcao.closeSet Conexcao=nothingresponse.redirect("incluir_pontos_vendedor.asp?msg=1")%>

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

estava tentando fazer e fui colocando o que achava q ia dar certo e coloquei assim:

Response.Expires = 0	sSQL = "INSERT INTO pontuacao_vendedor(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno	sql = "SELECT * cad_vendedores where nome = gerente" 'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O GERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE E		sSQL = "INSERT INTO pontuacao_gerente(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno

só que ao inves de "pegar" o nome do gerente ele foi com o nome do vendedor mesmo! como que faço para ir com o nome do gerente?

 

 

e tentei assim tb

 

Response.Expires = 0	sSQL = "INSERT INTO pontuacao_vendedor(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno	sql5 = "SELECT * from cad_vendedores where "& nome &" = gerente" 'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O GERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE E	Set rs5=Conexcao.Execute(sql5)		sSQL = "INSERT INTO pontuacao_gerente("& rs5 &",ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno		'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O SUBGERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE  E		'sSQL = "INSERT INTO pontuacao_subgerente(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	'Conexcao.Execute sSQL,intRetorno

Só que assim da o erro:

Microsoft OLE DB Provider for ODBC Drivers erro '80040e10'

 

[Microsoft][Driver ODBC para Microsoft Access] Parâmetros insuficientes. Eram esperados 1.

 

/incentivos_lg/valida_incluir_pontos_vendedor.asp, line 23

 

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome do Gerente está ainda na tabela da Loja?

Compartilhar este post


Link para o post
Compartilhar em outros sites

printa sua sql na tela deve ter algum campo sem valor em seu WHERE ou então algum campo com o nome diferente do que ta no DB

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome do Gerente está ainda na tabela da Loja?

Não... agora eu coloquei ele no cad_vendedores!!!Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

printa sua sql na tela deve ter algum campo sem valor em seu WHERE ou então algum campo com o nome diferente do que ta no DB

Limpei os dados do meu DB e cadastrei alguns dados novamente para testar se o erro estava dando pq existia algum dado nulo, mas continua cadastrando do mesmo jeito!quando insiro pontos para o vendedor ele também esta inserindo pontos para o gerente, mas ao inves de ir com o nome do gerente ele esta indo com o nome do vendedor!!!meu SQL está assim agora:
sql = "SELECT * from cad_vendedores where nome = gerente" 	Set rs=Conexcao.Execute(sql)
Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se existirem vendedores com mesmo nome isso pode "babar", mas...:

sSQL = "INSERT INTO pontuacao_vendedor(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"
Conexcao.Execute sSQL,intRetorno

sql = "SELECT GERENTE from cad_vendedores where nome = '"& nome &"'" 'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O GERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE.
Set UmRS = conexcao.execute(SQL)
If not UmRS.EOF Then
	sSQL = "INSERT INTO pontuacao_gerente(nome,ponto) VALUES ('"& UmRS("GERENTE") &"','"& ponto &"')"
	Conexcao.Execute sSQL,intRetorno
End If

Testa esse dai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se existirem vendedores com mesmo nome isso pode "babar", mas...:

sSQL = "INSERT INTO pontuacao_vendedor(nome,ponto) VALUES ('"& nome &"','"& ponto &"')"	Conexcao.Execute sSQL,intRetorno	sql = "SELECT GERENTE from cad_vendedores where nome = '"& nome &"'" 'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O GERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE.Set UmRS = conexcao.execute(SQL)	If not UmRS.EOF Then		sSQL = "INSERT INTO pontuacao_gerente(nome,ponto) VALUES ('"& UmRS("GERENTE") &"','"& ponto &"')"		Conexcao.Execute sSQL,intRetorno	End If
Testa esse dai
Deu certo!!!!!!!!!!!Agora pra calcular os 20% em cima do PONTO teria que fazer essa conta:PONTO x 20 / 100 = pontocomo faço?OBRIGADO!!!!!!!!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seria assim????

 

ponto_certo = & ponto & * 20 / 100 sql = "SELECT gerente from cad_vendedores where nome = '"& nome &"'" 'E IR NA TABELA "cad_vendedores" VERIFICAR QUEM É O GERENTE DESSE VENDEDOR PEGAR OS 20% DO PONTO DELE.	Set UmRS = conexcao.execute(SQL)	If not UmRS.EOF Then		sSQL = "INSERT INTO pontuacao_gerente(nome,ponto) VALUES ('"& UmRS("GERENTE") &"','"& ponto_certo &"')"		Conexcao.Execute sSQL,intRetorno	End If

Valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ponto_certo = ponto * 20 / 100

Compartilhar este post


Link para o post
Compartilhar em outros sites

ponto_certo = ponto * 20 / 100

CARA DEU CERTO!!!!!!!!!!!!!!Mas tem um problemainha quando eu coloquei um produto que vale 4 pontos ele coloca que 20% de 4 é 1 e o certo seria 0,8 e coloquei 14 pontos para testar e o resultado que ele coloca é 3 ao inves de 2,8 ele esta arredondando. Como faço para ele dar o numero exato?Valeuabraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.