GuiOr Posted October 18, 2011 Report Share Posted October 18, 2011 Boa Tarde Pessoas,Estou com um Problema em um query que criei, será que poderiam auxiliar ?seguinte:SELECT X, Y, Z FROM (SELECT IFNULL(X,'') X, IFNULL(Z,'') Z,(SELECT c.nome FROM banco1.tabela1 a LEFT JOIN banco1.tabela2 c ON c.id = a.id WHERE a.cod = b.cod) YFROM banco1.tabela3 b WHERE rej IN (0)GROUP BY X, Y) result GROUP BY result.Z,result.X,result.Y;O Problema é que o resultado disso é:X Y Z1 A 2011-01-012 A 2011-01-013 A 2011-01-014 B 2011-01-015 B 2011-01-016 C 2011-01-017 C 2011-01-018 C 2011-01-019 C 2011-01-01Eu gostaria que os resultado que possuem Y iguais fiquem agrupados...ex:X Y Z1 a 3 A 2011-01-014 a 5 B 2011-01-016 a 9 C 2011-01-01ok?!Help! Obrigado! Link to comment Share on other sites More sharing options...
0 MrMALJ Posted October 19, 2011 Report Share Posted October 19, 2011 Ocorre que você está utilizando no seu grupamento um campo no qual os dados não se repetem (X). Se você retirar esse campo ele irá juntar os itens desejados. Link to comment Share on other sites More sharing options...
0 GuiOr Posted October 19, 2011 Author Report Share Posted October 19, 2011 Opa..então é que quando eu mantenho agrupamento somente por Y, eu não tenho referência de até qual valor equivale A..o resultado seria:X Y Z1 A 2011-01-014 B 2011-01-016 C 2011-01-01eu preciso saber o bloco de valores de X que possuem A, que seria '1 a 3' não somente o primeiro registro, pois são valores aleatórios,eu pensei em fazer min(X), max(X) agrupado pelo Y mas também não deu certo.Att. Link to comment Share on other sites More sharing options...
0 Denis Courcy Posted October 20, 2011 Report Share Posted October 20, 2011 Oi 'GuiOr'Estude sobre GROUP_CONCAT. Ele se aplica ao campo X de seu exemplo.A grosso modo, seu select seria assim:SELECT GROUP_CONCAT(exemplo.X) AS X, exemplo.Y, exemplo.Z FROM (SELECT X, Y, Z FROM (SELECT IFNULL(X,'') X, IFNULL(Z,'') Z, (SELECT c.nome FROM banco1.tabela1 a LEFT JOIN banco1.tabela2 c ON c.id = a.id WHERE a.cod = b.cod) Y FROM banco1.tabela3 b WHERE rej IN (0) GROUP BY X, Y) result GROUP BY result.Z,result.X,result.Y) exemplo GROUP BY exemplo.Y;Purifique a idéia. Link to comment Share on other sites More sharing options...
0 GuiOr Posted October 20, 2011 Author Report Share Posted October 20, 2011 NOOOsssa!!!XDAmém!Vlw msmo Galera ajudaram muito,Abç Link to comment Share on other sites More sharing options...
Question
GuiOr
Boa Tarde Pessoas,
Estou com um Problema em um query que criei, será que poderiam auxiliar ?
seguinte:
SELECT X, Y, Z FROM
(SELECT IFNULL(X,'') X, IFNULL(Z,'') Z,
(SELECT c.nome FROM banco1.tabela1 a LEFT JOIN banco1.tabela2 c ON c.id = a.id WHERE a.cod = b.cod) Y
FROM banco1.tabela3 b WHERE rej IN (0)
GROUP BY X, Y) result GROUP BY result.Z,result.X,result.Y;
O Problema é que o resultado disso é:
X Y Z
1 A 2011-01-01
2 A 2011-01-01
3 A 2011-01-01
4 B 2011-01-01
5 B 2011-01-01
6 C 2011-01-01
7 C 2011-01-01
8 C 2011-01-01
9 C 2011-01-01
Eu gostaria que os resultado que possuem Y iguais fiquem agrupados...
ex:
X Y Z
1 a 3 A 2011-01-01
4 a 5 B 2011-01-01
6 a 9 C 2011-01-01
ok?!
Help! Obrigado!
Link to comment
Share on other sites
4 answers to this question
Recommended Posts