SELECT DISTINCT EM SO UM CAMPO DA INSTRUCAO SQL
Pessoal,
Estou com uma dificultade no sql distinct.
Tenho uma tabela que tem que retornar somente um campo dela: A instrução sql é:
SELECT DISTINCT ROT_CODIGO, ROTEIRO_FOTO.RF_fOTO, ROTEIRO.ROT_TITULO, ROTEIRO.ROT_DESCRICAO, ROTEIRO.ROT_PRECO, ROTEIRO.ROT_MOEDA
FROM ROTEIRO_FOTO INNER JOIN (ROTEIRO INNER JOIN ROTEIRO_HOME ON ROTEIRO.ROT_CODIGO = ROTEIRO_HOME.HOM_ROTEIRO) ON ROTEIRO_FOTO.RF_ROTEIRO = ROTEIRO.ROT_CODIGO
WHERE (((ROTEIRO_HOME.HOM_TIPO)='Destaque'));
Perceba qye no select em varios campos. Eu queria usar o DISTINCT somente no campo ROT_CODIGO, assim esse codigo não se repetiria. Hoje ele se repete com o distinct já que os outros campos não coincidem.
Se alguem souber como fazer um distinct somente no campo rot_codigo solucionaria meu problema.
Obrigado a todos!
Estou com uma dificultade no sql distinct.
Tenho uma tabela que tem que retornar somente um campo dela: A instrução sql é:
SELECT DISTINCT ROT_CODIGO, ROTEIRO_FOTO.RF_fOTO, ROTEIRO.ROT_TITULO, ROTEIRO.ROT_DESCRICAO, ROTEIRO.ROT_PRECO, ROTEIRO.ROT_MOEDA
FROM ROTEIRO_FOTO INNER JOIN (ROTEIRO INNER JOIN ROTEIRO_HOME ON ROTEIRO.ROT_CODIGO = ROTEIRO_HOME.HOM_ROTEIRO) ON ROTEIRO_FOTO.RF_ROTEIRO = ROTEIRO.ROT_CODIGO
WHERE (((ROTEIRO_HOME.HOM_TIPO)='Destaque'));
Perceba qye no select em varios campos. Eu queria usar o DISTINCT somente no campo ROT_CODIGO, assim esse codigo não se repetiria. Hoje ele se repete com o distinct já que os outros campos não coincidem.
Se alguem souber como fazer um distinct somente no campo rot_codigo solucionaria meu problema.
Obrigado a todos!
Cara ... eu acho que na verdade não tem como solucionar esse problema.
Pois os outros campos não coincidem, o que deixa o distinct sem funcionalidade.
Mas, em todo o caso, não sei qual banco de dados vc usa, mas ja tentou usar da seguinte forma:
SELECT DISTINCT(ROT_CODIGO), ROTEIRO_FOTO.RF_fOTO, ROTEIRO.ROT_TITULO, ROTEIRO.ROT_DESCRICAO, ROTEIRO.ROT_PRECO, ROTEIRO.ROT_MOEDA
FROM ROTEIRO_FOTO INNER JOIN (ROTEIRO INNER JOIN ROTEIRO_HOME ON ROTEIRO.ROT_CODIGO = ROTEIRO_HOME.HOM_ROTEIRO) ON ROTEIRO_FOTO.RF_ROTEIRO = ROTEIRO.ROT_CODIGO
WHERE (((ROTEIRO_HOME.HOM_TIPO)='Destaque'));
Qualquer coisa, post ai de novo.
Flws
Pois os outros campos não coincidem, o que deixa o distinct sem funcionalidade.
Mas, em todo o caso, não sei qual banco de dados vc usa, mas ja tentou usar da seguinte forma:
SELECT DISTINCT(ROT_CODIGO), ROTEIRO_FOTO.RF_fOTO, ROTEIRO.ROT_TITULO, ROTEIRO.ROT_DESCRICAO, ROTEIRO.ROT_PRECO, ROTEIRO.ROT_MOEDA
FROM ROTEIRO_FOTO INNER JOIN (ROTEIRO INNER JOIN ROTEIRO_HOME ON ROTEIRO.ROT_CODIGO = ROTEIRO_HOME.HOM_ROTEIRO) ON ROTEIRO_FOTO.RF_ROTEIRO = ROTEIRO.ROT_CODIGO
WHERE (((ROTEIRO_HOME.HOM_TIPO)='Destaque'));
Qualquer coisa, post ai de novo.
Flws
Victor,
Obrigado pela ajuda!
Inferlizmente colocar entre parentesis não solucionou. Acabei usando a seguinte instrução:
SELECT DISTINCTROW TOP 3 ROT_CODIGO, RF_fOTO, ROT_TITULO, ROT_DESCRICAO, ROT_PRECO, ROT_MOEDA FROM ROTEIRO_FOTO INNER JOIN (ROTEIRO INNER JOIN ROTEIRO_HOME ON ROTEIRO.ROT_CODIGO = ROTEIRO_HOME.HOM_ROTEIRO) ON ROTEIRO_FOTO.RF_ROTEIRO = ROTEIRO.ROT_CODIGO WHERE (((ROTEIRO_HOME.HOM_TIPO)='Destaque')) And ROTEIRO.ROT_APAGADO = FALSE AND ROTEIRO_FOTO.RF_APAGADO = FALSE
Obrigado pela ajuda!
Inferlizmente colocar entre parentesis não solucionou. Acabei usando a seguinte instrução:
SELECT DISTINCTROW TOP 3 ROT_CODIGO, RF_fOTO, ROT_TITULO, ROT_DESCRICAO, ROT_PRECO, ROT_MOEDA FROM ROTEIRO_FOTO INNER JOIN (ROTEIRO INNER JOIN ROTEIRO_HOME ON ROTEIRO.ROT_CODIGO = ROTEIRO_HOME.HOM_ROTEIRO) ON ROTEIRO_FOTO.RF_ROTEIRO = ROTEIRO.ROT_CODIGO WHERE (((ROTEIRO_HOME.HOM_TIPO)='Destaque')) And ROTEIRO.ROT_APAGADO = FALSE AND ROTEIRO_FOTO.RF_APAGADO = FALSE
Tópico encerrado , respostas não são mais permitidas