Ir para conteúdo
FabianoSouza

Retornar colunas da subconsulta

Recommended Posts

Preciso corrigir o erro "Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS." da minha consulta.

SELECT 
 TA.titulo AS 'Trilha'
, (SELECT 
CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental
,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico
FROM (
    SELECT
    SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental,
    SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico,
    COUNT(*) AS Total
    FROM dbo.tabB
	) tab
)

FROM dbo.tabA AS TA

Nessa consulta, preciso trazer o título (da tabA) e o resultado de um cálculo feito na subconsulta, nos campos Comportamental e Técnico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem muito detalhes é apenas um chute, mas tentou usar este select que está como coluna para uma tabela virtual ?

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 25/08/2023 at 13:09, FabianoSouza disse:

SELECT 
 TA.titulo AS 'Trilha'
, aux.*
FROM dbo.tabA AS TA,
(SELECT 
CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental
,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico
FROM (
    SELECT
    SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental,
    SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico,
    COUNT(*) AS Total
    FROM dbo.tabB
	) tab
) aux

 

 

algo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por JoãoNeto2
      Eu estava usando um programa em PHP que conectava e lia um banco de dados SQL Server. Do nada ele parou de funcionar apresentando a seguinte mensagem :
      O cliente não pode estabelecer conexão porque foi encontrado um erro durante os handshakes anteriores ao logon. As causas comuns incluem a tentativa do cliente de conectar-se a uma versão sem suporte do SQL Server, o servidor muito ocupado para aceitar novas conexões ou uma limitação de recursos (memória ou máximo de conexões permitidas) no servidor.
      Algumas informações para esclarecer :
      1-Consigo conectar o banco via Dbeaver da própria máquina que o programa PHP deixou de funcionar
      2-De outra máquina consigo conectar esse mesmo banco com o mesmo programa PHP
      3-Essa mesma máquina conecta outro banco SQL Server de outro cliente
      Ou seja, o mesmo programa conecta o mesmo banco mas de outra máquina e a mesma máquina consegue conectar outro banco SQL.
      O que pode ser?
    • Por rdavisp
      Senhores, recorro a ajuda de vocês pois venho do banco de dados Oracle e tenho encontrado certa dificuldade para trabalhar com o SQL Server 2012, mais especificamente com a linguagem Transact-SQL. Pelo o que eu tenho percebido, não se trata de uma linguagem fortemente tipada em relação ao gerenciamento de escopo de variáveis. Exemplo, como as variavéis de cursores, que caso a primeira interação atribua valores válidos para as variáveis e caso na segunda volta do looping seja retornado nulo é mantido o valor da primeira interação. Outra coisa que eu estou tentando entender é o fato da seguinte query dentro de um bloco não retornar resultado dinamincamente na execução:
      SELECT @IDSALAMODELO = SM.ID
            ,@NOMEGRUPO    = G.NOME
        FROM CRT C
            ,GRUPO G
            ,SALAMODELO SM
            ,EMPRESA E
       WHERE C.IDGRUPO      = G.ID
         AND G.IDSALAMODELO = SM.ID
         AND SM.IDEMPRESA   = E.ID
         --
         AND C.ID       = CAST(@CRT AS INT)
         AND C.ATIVO    = @ATIVO
         AND G.ATIVO    = @ATIVO
         AND G.IDINTAKE = @INTAKEATUAL
         AND E.ID       = @IDEMPRESA
      E quando a executo numa janela de consulta com os parametros hardcode ela me retorna resultado. Não estou limpando elas em momento algum e ja tentei deixar os valores hardcode dentro do bloco, mas ainda assim, o resultado permance o mesmo, ou seja, não me retorna resultado.
      Por isso, se possível, gostaria da opinião de vocês para que eu posso solucionar esse problema.
      Grato.
    • Por 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.
    • Por 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. 
       

    • Por Jhonatan de Souza
      Olá Pessoal meu nome é Jhonatan da Dev Aprender não quero que fiquemos para trás do pessoal da gringa, aqui no Brasil quero trazer também cursos de qualidade para a comunidade

      E por isso ontem lancei este : "Curso SQL Completo 2019 [Iniciantes] + Desafios e Muita Prática"
      Espero que ele possa ajudar o máximo de pessoas possível, se houver algum MOD que possa me ajudar caso não seja permitido postar este conteúdo aqui, eu posso remover, de qualquer forma bom aprendizado pessoal!

      https://www.youtube.com/watch?v=rX2I7OjLqWE

      Grade do Curso:
      00:00:00 - 00:00:36 - O que você irá aprender no curso
      Aula 00 - Instalando SQL Server e SSMS 00:00:36 - 00:05:34
      Aula 01 - Restaurando um banco de dados 05:40 - 12:30
      Aula 02 - Select + Desafios 00:12:30 - 00:18:59
      Aula 03 - Disctinct + Desafios 00:18:59- 00:34:02
      Aula 04 - Where + Desafios 00:21:57 - 34:11
      Aula 05 - Count + Desafios 00:34:02 - 00:38:08
      Aula 06 - Top + Desafios 00:38:10 - 00:40:01
      Aula 07 - Order By + Desafios 00:40:01 - 00:46:20
      Aula 08 - Between 00:46:29 - 00:51:46
      Aula 09 - In 00:51:55 - 00:55:31
      Aula 10 - Like 00:55:40 - 01:00:25
      Aula 11 - Desafios fundamentos SQL 00:01:06 - 01:06:33
      Aula 12 - Min Max Sum Avg - 01:06:40 - 01:10:50
      Aula 13 - Group By 01:11:00 - 01:24:18
      Aula 14 - Having 01:24:18 - 01:32:40
      Aula 15 - As 01:33:00 - 01:38:58
      Aula 16 - Inner Join 01:30:05 - 01:55:17
      Aula 17 -Tipos de Joins 01:55:25 - 02:03:56
      Aula 18 - Outer Join 02:04:05 - 02:09:15
      Aula 19 - Union 02:09:20 - 02:15:13
      Aula 20 - Datepart 02:15:20 - 02:21:12
      Aula 21 - Manipulação de String 02:21:18 - 02:27:43
      Aula 22 - Operações Matemáticas 02:27:47 - 02:32:08
      Aula 23 - Subquery 02:32:12 - 02:43:06
      Aula 24 - Self Join 02:43:06 - 02:53:09
      Aula 25 - Tipos de Dados 02:53:13 - 03:01:29
      Aula 26 - Chave primária e estrangeira 03:01:35 - 03:08:50
      Aula 27 - Create Table 03:09:00 - 03:19:49
      Aula 28 - Insert Into 03:19:49 - 03:26:39
      Aula 29 - Update 03:26:45 - 03:30:14
      Aula 30 - Delete 03:30:20 - 03:33:05
      Aula 31 - Alter Table 03:33:10 - 03:39:48
      Aula 32 - Drop Table 03:39:55 - 03:42:55
      Aula 33 - Check Constraint 03:43:00 - 03:46:18
      Aula 34 - Not Null Constraint 03:47:03 - 03:53:38
      Aula 35 - Unique Constraint 03:53:43 - 03:52:41
      Aula 36 - Views 03:52:41 - 03:55:30
      Considerações Finais 03:55:31  
×

Informação importante

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