GuiOr Postado Outubro 18, 2011 Denunciar Share Postado Outubro 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 para o comentário Compartilhar em outros sites More sharing options...
0 MrMALJ Postado Outubro 19, 2011 Denunciar Share Postado Outubro 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 para o comentário Compartilhar em outros sites More sharing options...
0 GuiOr Postado Outubro 19, 2011 Autor Denunciar Share Postado Outubro 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 para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Outubro 20, 2011 Denunciar Share Postado Outubro 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 para o comentário Compartilhar em outros sites More sharing options...
0 GuiOr Postado Outubro 20, 2011 Autor Denunciar Share Postado Outubro 20, 2011 NOOOsssa!!!XDAmém!Vlw msmo Galera ajudaram muito,Abç Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
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 para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados