Agrupar 2(duas) colunas
Olá!!
Mais uma ajuda de vocês.
Tenho numa tabela SQL os campos, CAIXA, CONTRATO, SITUACAO, entre outros e preciso encontrar e agrupar SOMENTE as caixas onde
todos os contratos dentro delas estejam na mesma situação, ou seja:
CAIXA CONTRATO SITUAÇÃO
1 10 A
1 11 A
1 21 A
2 13 B
2 30 B
2 25 B
10 33 C
10 22 C
10 7 C
Se uma caixa contiver contratos com situações diferentes, ela não deve ser relacionada.
Valeu!
Mais uma ajuda de vocês.
Tenho numa tabela SQL os campos, CAIXA, CONTRATO, SITUACAO, entre outros e preciso encontrar e agrupar SOMENTE as caixas onde
todos os contratos dentro delas estejam na mesma situação, ou seja:
CAIXA CONTRATO SITUAÇÃO
1 10 A
1 11 A
1 21 A
2 13 B
2 30 B
2 25 B
10 33 C
10 22 C
10 7 C
Se uma caixa contiver contratos com situações diferentes, ela não deve ser relacionada.
Valeu!
Alexandre
Curtidas 0
Melhor post
Luiz Santos
14/03/2018
Bom dia Alexandre.
Confesso que demorei um pouco para entender o que você precisava.
Mas acho que isso te atende.
Basicamente, o segundo SELECT resolve o seu problema, o resto usei para montar um cenário para estudar.
Espero que te ajude.
Grande abraço
Confesso que demorei um pouco para entender o que você precisava.
Mas acho que isso te atende.
Basicamente, o segundo SELECT resolve o seu problema, o resto usei para montar um cenário para estudar.
Espero que te ajude.
IF OBJECT_ID(N'tempdb..#TESTE') IS NOT NULL DROP TABLE #TESTE CREATE TABLE #TESTE( CAIXA INT, CONTRATO INT, SITUACAO CHAR(2) ) INSERT INTO #TESTE VALUES (1, 10, 'A'), (1, 11, 'A'), (1, 21, 'D'), (2, 13, 'B'), (2, 30, 'B'), (2, 25, 'B'), (10, 33, 'C'), (10, 22, 'C'), (10, 7, 'C') SELECT CAIXA, COUNT(DISTINCT SITUACAO) FROM #TESTE GROUP BY CAIXA SELECT CAIXA, COUNT(DISTINCT SITUACAO) FROM #TESTE GROUP BY CAIXA HAVING COUNT(DISTINCT SITUACAO) = 1
Grande abraço
GOSTEI 1
Mais Respostas
Alexandre
12/03/2018
Luiz Fernando, bom dia!
Agradeço mas não é isso não.
Imagine que tenho milhares de caixa e em cada uma delas dezenas de contratos.
Na maioria delas os contratos encontram-se em situações diferentes, mas em algumas delas todos os contratos estão na mesma situação.
Eu preciso encontrar somente essas em que todos os contratos dentro dela estão na mesma situação, seja lá qual situação for.
Agradeço mas não é isso não.
Imagine que tenho milhares de caixa e em cada uma delas dezenas de contratos.
Na maioria delas os contratos encontram-se em situações diferentes, mas em algumas delas todos os contratos estão na mesma situação.
Eu preciso encontrar somente essas em que todos os contratos dentro dela estão na mesma situação, seja lá qual situação for.
GOSTEI 0
Luiz Santos
12/03/2018
Então Alexandre.
A query abaixo te atende.
Nela eu estou vendo por caixa, quantas situações diferentes tenho.
O HAVING COUNT(DISTINCT SITUACAO) = 1 vai me trazer apenas as caixas que tiverem a mesma situação em todos os contratos.
Só se tem alguma coisa na sua regra que eu não consegui entender.
Grande abs
A query abaixo te atende.
SELECT CAIXA, COUNT(DISTINCT SITUACAO) FROM #TESTE GROUP BY CAIXA HAVING COUNT(DISTINCT SITUACAO) = 1
Nela eu estou vendo por caixa, quantas situações diferentes tenho.
O HAVING COUNT(DISTINCT SITUACAO) = 1 vai me trazer apenas as caixas que tiverem a mesma situação em todos os contratos.
Só se tem alguma coisa na sua regra que eu não consegui entender.
Grande abs
GOSTEI 1