Tenho 2 mesas, tamanho e custo. Minha consulta faz uma contagem maior que a comparação de custos e conta tamanhos diferentes.
tabela1: tamanho u
tabela2: crédito t
Aqui está minha consulta:
selecione u.size como tamanho
,count(u.size) * .4 como "40% do tamanho"
,count(case when (t.cred * 12) > (t.inc *.3) then 1 final) como "custo de 30%"
do crédito t
junte-se ao tamanho u em t.id = u.id
grupo por u.size
O resultado é o seguinte:
Tamanho | 40% do tamanho | 30% de custo |
---|---|---|
0 | 75,6 | 50 |
1 | 470,4 | 160 |
2 | 414,8 | 114 |
3 | 202,8 | 59 |
4 | 40 | 21 |
5 | 8.8 | 9 |
6 | 0,4 | 1 |
Quero que a consulta mostre um 'Y' se a coluna de custo for maior que a coluna de tamanho e um 'N' se for menor. Aqui estaria o resultado que estou procurando:
Tamanho | 40% do tamanho | 30% de custo | S/N |
---|---|---|---|
0 | 75,6 | 50 | N |
1 | 470,4 | 160 | N |
2 | 414,8 | 114 | N |
3 | 202,8 | 59 | N |
4 | 40 | 21 | N |
5 | 8.8 | 9 | S |
6 | 0,4 | 1 | S |
Existe uma maneira de mostrar isso? Tentei usar o seguinte, mas entendi: O valor booleano não pode ser operado com valor não booleano.
,caso quando ((t.cred * 12) > (t.inc * .3)) > (count(u.size) * .4) then 'Y' else 'N' termina como "S/N" Não tenho
certeza se eu precisar fazer uma subconsulta?
Você pode usar subconsulta ou cte para torná-lo mais legível, mas não é necessário. Versão com subconsulta:
Sem subconsulta
você provavelmente poderia usar um CTE para obter o resultado desejado.
algo assim: