Ir para conteúdo
Fórum Script Brasil
  • 0

Iniciante com comando sql


Clauido José

Pergunta

Pessoal gostaria de agradecer pela força que você estão me dando não quero que você faça o sistema pra mim é bom a gente se virar em vez em quando. Olha não manjo muinto de comando sql sei o basico mas to com uma duvida com a opção Count, é o seguinte:

Preciso criar uma consulta com o Count mas é seguinite ele tem que trazer o total da empresa e total das Os executadas. Bom se eu colocar a empresa ele traz o total certinho mas quando eu coloco o total da Os ele traz registro por registro não traz o grupo todo o que devo fazer ai vai o codigo. Se você poderem me ajudar eu vou agradecer des de já:

SELECT Count(tabDth.idEmpresa) AS TotalEmp, tabEmpresa.Responsavel, Count(tabDth.NoOs) AS Total, tabDth.Status, tabDth.HoraInicio, tabDth.DatCompromisso
FROM tabEmpresa INNER JOIN tabDth ON tabEmpresa.Empresa = tabDth.idEmpresa
GROUP BY tabEmpresa.Responsavel, tabDth.Status, tabDth.HoraInicio, tabDth.DatCompromisso, tabDth.idEmpresa, tabDth.NoOs
HAVING (((tabDth.DatCompromisso)=[Data]))
ORDER BY Count(tabDth.idEmpresa);

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Ola Claudio.

Com relação aos tópicos:

http://scriptbrasil.com.br/forum/index.php?showtopic=130166

http://scriptbrasil.com.br/forum/index.php?showtopic=130159

http://scriptbrasil.com.br/forum/index.php?showtopic=130220

Como ficou? conseguiu resolver suas dúvidas? Se sim, volte ao tópico e aponte qual foi sua solução para caso alguém tenha a mesma dúvida que você tb conseguir resolver, ok?

Com relação q query acima tá meio confusa... lendo ela não entendi muito bem o que você quis fazer... como sugestão, recomendaria que você tentasse as separar em duas ou mais querys, gerando inicialmente mais de um RS, depois, com todas funcionando comece as agrupar lentamente, de forma a identificar erros individuais que são bem mais fáceis de resolver, ok?

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

OK entendi.

Bom com relação a querys é seguinte tenho que abrir a tabela de modo que ela traga a empresa com o total da Os e total do servico o total status = 'Ab' já estou postando sobre os topicos.

Link para o comentário
Compartilhar em outros sites

  • 0

Mas então porque usar o count? O total que você quer é o somatório total de uma determinsada coluna certo?

Se for isso use select sum com clausula de where... seu código fica bem mais "limpo"! além disso é mais fácil de fazer... algo como:

sql = "select sum(coluna_a_ser_somada) as total from suatabela where campox = '"&variavelx&"' order by campobd asc"
set rs...

resposne.write rs("total")

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Descupe me espreci mal não o total mas sim o total de registro tipo se tiver 20 os tem que aparecer o Os = 20 e a empresa

tipo assim fica o for

Empresa Os Status

18 - Lutec 20 20

19 - Lider 15 15

entendeu?

Link para o comentário
Compartilhar em outros sites

  • 0

quase a mesma coisa... faça um select para cada um depois vá os unificando se dor o caso!

ObjRs.Open ComandoSQL,objConn,3,3
SQL = "SELECT campobd FROM tabbd where campobd ='"&"variavel"&"' "
SET ObjRs = Server.CreateObject("ADODB.Recordset")
ObjRs.Open SQL,objConn,3,3


response.write objRs.recordcount

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

Olha, no seu caso vai TER QUE ser o cout... porque o sum retorna o total dos valores em determinados campos e não o total dos registros... atribuição essa do count... mas a lógica que sugiro pe a mesma...

separe tudo... podem aparecer erros, mas serão mais específicos, ou seja, de solução mais fácil... depois você volta a colocar tudo na mesma query se quiser...

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi obrigado é isso mesmo estava fazendo uns testes no access ele se eu fazer campo por campo ele traz certinho o total do registro mas se eu colocar mas de um campo ele traz todos os registro individualmente porque?

Link para o comentário
Compartilhar em outros sites

  • 0

bom eu fiz da seguinte maneira tinha que abrir a mesma tabela para que ficasse da seguinte maneira.

Tecnico Servico Total AB AC BC CA NF RP Hora Inicio

CLAUDIO 10 10 10 0 0 0 0 0

Assim até terminasse os tecnicos da empresa bom fiz da seguinte maneira, sendo que AB, AC, BC, CA, NF, RP e um campo da tabela chamanda status seria o status do servico. não sei se existe uma maneira mais facil de fazer isso se tiver me ajudem? Ai vai a querys

campos = "tabDth.DatCompromisso, tabDth.idTecnico, tabTecnicos.Tecnico, Count(tabDth.idTecnico) AS Total, Count(tabDth.NoOs) AS ContarDeNoOs,"
        campos = campos & "tabDth.Status, tabDth.idServico, tabDth.idEmpresa, tabDth.HoraInicio"        
        strSql = "Select " & campos & " FROM tabDth INNER JOIN tabTecnicos ON tabDth.idTecnico = tabTecnicos.idTecnico"
        strSql = strSql & " GROUP BY tabDth.DatCompromisso, tabDth.idTecnico, tabTecnicos.Tecnico, tabDth.Status, tabDth.idServico, tabDth.idEmpresa,"
        strSql = StrSql & " tabDth.HoraInicio HAVING tabDth.DatCompromisso=#" & strData & "#"
        strSql = strSql & " AND tabDth.idEmpresa=" & Request.QueryString("idEmpresa")
        rsRota.Open strsql,Conexao, 3,3
        'separa Rotas Geral Com Status AB
        strSql = "SELECT datCompromisso,Count(Status) AS ContarAB FROM tabDth GROUP BY DatCompromisso,Status"
        strSql = strSql & " HAVING DatCompromisso=#" & strData & "# AND Status='AB'"
        rsRota1.Open strSql, Conexao, 3, 3
        'separa a rota geral por status = AC
        strSql = "SELECT datCompromisso,Count(Status) AS ContarAc FROM tabDth GROUP BY DatCompromisso,Status"
        strSql = strSql & " HAVING DatCompromisso=#" & strData & "# AND Status='Ac'"
        rsRota2.Open strSql, Conexao, 3, 3        
        'separa a rota geral por status = BC
        strSql = "SELECT datCompromisso,Count(Status) AS ContarBC FROM tabDth GROUP BY DatCompromisso,Status"
        strSql = strSql & " HAVING DatCompromisso=#" & strData & "# AND Status='BC'"
        rsRota3.Open strSql, Conexao, 3, 3        
        'separa a rota geral por status = CA
        strSql = "SELECT datCompromisso,Count(Status) AS ContarCA FROM tabDth GROUP BY DatCompromisso,Status"
        strSql = strSql & " HAVING DatCompromisso=#" & strData & "# AND Status='CA'"
        rsRota4.Open strSql, Conexao, 3, 3        
        'separa a rota geral por status = NF
        strSql = "SELECT datCompromisso,Count(Status) AS ContarNF FROM tabDth GROUP BY DatCompromisso,Status"
        strSql = strSql & " HAVING DatCompromisso=#" & strData & "# AND Status='NF'"
        rsRota5.Open strSql, Conexao, 3, 3        
        'separa a rota geral por status = RP
        strSql = "SELECT datCompromisso,Count(Status) AS ContarRP FROM tabDth GROUP BY DatCompromisso,Status"
        strSql = strSql & " HAVING DatCompromisso=#" & strData & "# AND Status='RP'"
        rsRota6.Open strSql, Conexao, 3, 3        
        status = "Geral » Tecnico"

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...