Jump to content

Recommended Posts

Olá pessoal

 

Preciso da ajuda de vocês, atualmente tenho uma consulta que está retornando as datas, nomes e quantidade de erros, gostaria de fazer um pivot para que a data fique como coluna e somar a quantidade de erros. 

 

Poderiam me ajudar?

 

 

 

SELECT
  CAST(C.DataPalitagem AS DATE) AS Data,
  C.Id,
  R.Id,
  R.Nome,
  COUNT(DISTINCT CASE WHEN SPC.IdStatus = 4 THEN REL.IdCaptura ELSE NULL END) AS Erros
 FROM
  Caso C (NOLOCK)
  INNER JOIN StatusProcessosCaso SPC (NOLOCK) ON C.Id = SPC.IdCaso
  INNER JOIN Relacionamento REL (NOLOCK) ON SPC.IdCaso = REL.IdCaso AND SPC.IdRobo = REL.IdRobo
  INNER JOIN Robo R (NOLOCK) ON SPC.IdRobo = R.ID
  INNER JOIN StatusProcesso S ON SPC.IdStatus = S.Id
  LEFT  JOIN TipoRobo TR ON R.IdTipoRobo = TR.Id
  LEFT  JOIN CasoCaptura CC (NOLOCK) ON C.Id = CC.IdCaso AND REL.IdCaptura = CC.IdCaptura AND CC.Excluido = 0
 WHERE
  C.Id > 370
  AND
  C.IdStatusCaso >= 2
  AND
  C.DataPalitagem >= CAST(GETDATE()-15 AS DATE)
  AND
  SPC.IdRobo NOT IN (4)
 GROUP BY
  CAST(C.Data AS DATE),
  C.Id,
  R.Id,
  R.Nome
  ORDER BY 
  C.Id,
  R.Id,
  R.Nome
 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By tondovale12
      Já resolvi o problema. Obrigado.
      Não vi uma opção de excluir o tópico, então editei antes de ser aprovado.
    • By Bruno_Sam
      Preciso buscar em todas as tabelas do banco um nome de cliente. Não sei quais tabelas contem o nome desse cliente e preciso pois esta errado o nome. Existe algum select que faça busca de um valor em todas as tabelas e fala quais estão???
       
      Obs:Não posso criar tabela temporaria no banco.
    • By wellfc12
      Olá boa noite sou novo neste fórum, estou procurando ajuda pois não sei com eu poderia fazer. Estou modelando um banco de dados e agora cheguei a um ponto que não sei como fazer. 
      Preciso criar uma tabela que registre a movime tacacao de pessoas que iram passar na entrada da empresa, porém quando eu crio o relacionamento desta nova tabela com tabela pessoa para garantir integridade de quem é a pessoa que está entrando ou saída da empresa eu consigo, mas eu preciso também registrar o usuário (porteiro) que está registrando essa movimentação. A minha tabela de pessoas se relaciona com o usuário, pois uma pessoa cadastrada no sistema não necessariamente precisa ter um usuário, mas um usuário pra ter acesso ao sistema e necessário tar cadastrado na tabela pessoas. Quando vou relacionar na nova tabela que a pessoa quem passou é cod 2 exemplo eu preciso registrar qual é usuário quem registrou isso que poderia ser o cod 10 (cod o usuário, que do porteiro que tbm esta cadastrado no sistema) 
       
      Isso pode ser até uma coisa besta mas eu não sei como posso nesta ocasião. 
      Obrigado! 
       
      Anexo coloquei a imagem de uma modelagem que estou fazendo. 
       

    • By GuiPetenuci
      Boa tarde,
      Estou com um problema e estou ficando louco, ja li praticamente todos as respostas de View de SQL Server no Stack Overflow e a maioria da documentacao da MSFT
       
      Tenho uma view que faz algumas queries malucas que o cliente precisa, mas ela nao retorna o resultado justo, e se eu pegar o codigo e fazer uma query simples com o codigo, o resultado è ok.
       
      Codigo da View
      SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO /****** Object:  View [QEHS].[V_FactMonitorings25261gui]    Script Date: 11/07/2019 16:24:53 ******/ CREATE view      [QEHS].[V_FactMonitorings25261gui] as      with     Plants as      (         select distinct              [plant-id]          from              [QEHS].[Fact-Monitorings-H&S]                 ) ,      MIDs as      (         select mid          from          (             values                 ( 'MON.02.25 Total number of LTA free days (calendar days)')                 ,( 'MON.02.26 Total number of TRI free days (calendar days)')          ) as x(mid)      ),      PlantList      AS     (         select              a.date,              b.[plant-id],              c.mid         from              QEHS.Calendar_Gen A              cross join              plants b                 cross join mids c         where              year(a.date) >= 2011     ),      help1 as      (         SELECT              p.date,              p.[plant-id],             p.mid,              t.value,             (             case                  when (year(p.date) = year(getdate()) and month(p.date) = month(getdate())) then                      day(getdate())                  else                      iif(t.value is not null, 0, day(eomonth(p.date)))                             end                           ) Days,              cast(isnull(cast(t.value as bit),0) as integer) reset          FROM              PLANTLIST p              left join              [QEHS].[Fact-Monitorings-H&S] T             on             (                  p.date = t.date and                   p.[plant-id] = t.[plant-id] and                   p.mid = t.[monitoring-id]              )                  ),      help2 as      (         select              date,              [plant-id],              mid,              value,              days,              reset,             formatmessage('%s%s%d', [plant-id], mid,sum(reset) over                  (                      partition by  [plant-id], mid                      order by  date, [plant-id], mid                 )             ) grp         from             help1          where              year(date) >= (select year(min(date)) from [QEHS].[Fact-Monitorings-H&S])             ),     help3 as      (         select              date,              [plant-id],              mid,              value,              days,              first_value(value) over (partition by grp order by date, [plant-id], mid) fullvalue         from              help2      )      --      select          date,          [plant-id],          mid,          isnull(a.Value,              fullvalue +sum(days) over              (                  partition by [plant-id], mid, fullvalue                   order by  mid, date, [plant-id]                  rows between unbounded preceding and current row             )          ) total     from          help3 a          GO a view retorna assim:

       
      Agora se eu pegar e fazer a query "na mao", retorna assim, que è o justo:

       
      Agora, porque na view retorna um e a query retorna outro? o.o
    • By RICARDOVS
      Estou tentando rodar a consulta abaixo, porém está dando o erro "Sintaxe incorreta próxima à palavra-chave 'where'". Poderiam me ajudar?
       
          SELECT '3. CONTAS BANCARIAS' as OPERACAO,
                  SBC.REFERENCIA as DTVENC,
                  CTA.CODCTABCOINT COD,
                  CTA.DESCRICAO,
                  SANKHYA.OBTEM_SALDO_BANCO_TGFMBC(SBC.CODCTABCOINT,convert(DATETIME, :DTSALDO)+1) as SALDODODIA,
                  SANKHYA.OBTEM_SALDO_BANCO_TGFMBC(SBC.CODCTABCOINT,convert(DATETIME, :DTSALDO)+1) as SALDOFIN
             FROM TGFSBC SBC,TSICTA CTA
            WHERE SBC.CODCTABCOINT=CTA.CODCTABCOINT
              AND SBC.REFERENCIA=(SELECT MAX(SBC2.REFERENCIA) from TGFSBC SBC2 where SBC2.CODCTABCOINT=CTA.CODCTABCOINT)
              AND CTA.AD_EXIBE_BI='S'
      UNION ALL
          select *
            from (select '1. CAMBIAL PENDENTE' AS OPERACAO,
                          MAX(FIN.DTVENC) AS DTVENC,
                          NAT.CODNAT AS COD, 
                          nat.descrnat AS DESCRICAO,  
                          sum(VLRCAMBIAL) AS SALDODODIA,
                          sum(vlrdesdob) as SALDOFIN
                      from tgffin FIN JOIN AD_CAMBIAL CAM ON (CAM.NUFIN=FIN.NUFIN)
                          join tgfnat nat on (nat.codnat=fin.codnat)
                    where CAM.TIPO='P' group by nat.descrnat, NAT.CODNAT, '1. CAMBIAL PENDENTE') s
          where :OPERACAO='1. CAMBIAL PENDENTE'
      UNION ALL
          select *
            from (select '2. CAMBIAL DISPONIVEL' AS OPERACAO,
                          MAX(FIN.DTVENC) AS DTVENC,
                          NAT.CODNAT AS COD, 
                          nat.descrnat AS DESCRICAO,  
                          sum(VLRCAMBIAL) AS SALDODODIA,
                          sum(vlrdesdob) as SALDOFIN
                      from tgffin FIN JOIN AD_CAMBIAL CAM ON (CAM.NUFIN=FIN.NUFIN)
                          join tgfnat nat on (nat.codnat=fin.codnat)
                    where CAM.TIPO='D' group by nat.descrnat, NAT.CODNAT, '2. CAMBIAL DISPONIVEL') s
          where :OPERACAO='2. CAMBIAL DISPONIVEL'
      UNION ALL
          select *
            from (select '4. MOVIMENTO' AS OPERACAO,
                          MAX(FIN.DTVENC) AS DTVENC,
                          NAT.CODNAT AS COD, 
                          nat.descrnat AS DESCRICAO,  
                          sum(fin.vlrdesdob*fin.recdesp) AS SALDODODIA,
                          sum(fin.vlrdesdob*fin.recdesp) AS SALDOFIN
                      from tgffin FIN join tgfnat nat on (nat.codnat=fin.codnat)
                          INNER JOIN TGFTOP TOC ON (FIN.CODTIPOPER = TOC.CODTIPOPER AND FIN.DHTIPOPER = TOC.DHALTER)
                          LEFT JOIN AD_CAMBIAL CAM ON (CAM.NUFIN=FIN.NUFIN) AND TOC.DHALTER = (SELECT MAX(TOC.DHALTER) FROM TGFTOP TOC WHERE FIN.CODTIPOPER= TOC.CODTIPOPER) AND TOC.GRUPO<>:ADIANTAMENTOS
                  where  (FIN.DHBAIXA is null)
                  AND FIN.CODEMP IN :EMPRESA
                  AND (FIN.PROVISAO<>:PROVISAO)
                  AND (FIN.CODTIPTIT<>19 AND FIN.CODTIPTIT<>20 AND FIN.CODTIPTIT<>21)
                  and FIN.DTVENC=:DIA
                  group by nat.descrnat, NAT.CODNAT, '4. MOVIMENTO')
          where :OPERACAO='4. MOVIMENTO'
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.