shumi 0 Denunciar post Postado Dezembro 23, 2005 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 aiCom 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
Mário Monteiro 179 Denunciar post Postado Dezembro 23, 2005 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
shumi 0 Denunciar post Postado Dezembro 23, 2005 É 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
shumi 0 Denunciar post Postado Dezembro 23, 2005 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
shumi 0 Denunciar post Postado Dezembro 23, 2005 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
Mário Monteiro 179 Denunciar post Postado Dezembro 23, 2005 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
shumi 0 Denunciar post Postado Dezembro 23, 2005 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
Mário Monteiro 179 Denunciar post Postado Dezembro 23, 2005 Ok para voce tambem... Compartilhar este post Link para o post Compartilhar em outros sites
shumi 0 Denunciar post Postado Dezembro 26, 2005 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
shumi 0 Denunciar post Postado Dezembro 26, 2005 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
shumi 0 Denunciar post Postado Dezembro 26, 2005 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
Salgado 4 Denunciar post Postado Dezembro 26, 2005 O nome do Gerente está ainda na tabela da Loja? Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Dezembro 26, 2005 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
shumi 0 Denunciar post Postado Dezembro 26, 2005 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
shumi 0 Denunciar post Postado Dezembro 26, 2005 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 DBLimpei 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
Salgado 4 Denunciar post Postado Dezembro 26, 2005 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
shumi 0 Denunciar post Postado Dezembro 26, 2005 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 IfTesta esse daiDeu 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
shumi 0 Denunciar post Postado Dezembro 26, 2005 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
Salgado 4 Denunciar post Postado Dezembro 26, 2005 ponto_certo = ponto * 20 / 100 Compartilhar este post Link para o post Compartilhar em outros sites
shumi 0 Denunciar post Postado Dezembro 26, 2005 ponto_certo = ponto * 20 / 100CARA 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