Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

[SOLUCIONADO] Mostrar registros que se repitan mas de una vez

Estas en el tema de Mostrar registros que se repitan mas de una vez en el foro de SQL Server en Foros del Web. Es una consulta que hago en sql server, es la siguiente y me marca el siguiente error, podrian ayudarme? Todas las expresiones GROUP BY deben ...
  #1 (permalink)  
Antiguo 06/04/2015, 03:54
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
Mostrar registros que se repitan mas de una vez

Es una consulta que hago en sql server, es la siguiente y me marca el siguiente error, podrian ayudarme?
Todas las expresiones GROUP BY deben contener al menos una columna que no sea una referencia exterior.

Código SQL:
Ver original
  1. SELECT
  2.  
  3.  a.idContribuyente AS "Id",
  4.   con.noContrato AS "#C",
  5.  CASE WHEN a.nombre IS NULL THEN ''
  6.  ELSE ISNULL(NULLIF(a.nombre, 'NULL') , '') END +' '+ CASE
  7.  WHEN a.apellidoPaterno IS NULL THEN ''
  8.  ELSE ISNULL(NULLIF(a.apellidoPaterno, 'NULL') , '') END +' '+ CASE
  9.  WHEN a.apellidoMaterno IS NULL THEN ''
  10.  ELSE ISNULL(NULLIF(a.apellidoMaterno, 'NULL') , '') END +' '+ CASE
  11.  WHEN a.razonSocial IS NULL THEN ''
  12.  ELSE ISNULL(NULLIF(a.razonSocial, 'NULL') , '') END AS "NOMBRE / RAZÓN SOCIAL",
  13.   a.nombre AS "NOMBRE",
  14.   a.apellidoPaterno AS PATERNO,
  15.   a.apellidoMaterno AS MATERNO,
  16.   a.razonSocial AS "RAZON SOCIAL",
  17.   c.calle + ' ' + CAST(b.no AS VARCHAR(5))+', '+ d.colonia +', '+ e.municipio +', '+ cp.cp  AS DIRECCION ,
  18.   d.colonia AS COLONIA,
  19.   e.municipio AS MUNICIPIO,
  20.   cp.cp AS "C.P.",
  21.   con.fechaContrato AS "FECHA DE CONTRATO",
  22.   tt.descripcion AS DESCRIPCIÓN,
  23.   tt.precio AS TARIFA,
  24.   c.calle AS NCALLE,
  25.   b.no AS NUM,
  26.     b.idCalle,
  27.   b.idColonia,
  28.   b.idMunicipio,
  29.   con.idTipoToma,
  30.   con.observaciones AS OBSERVACIONES,
  31.   con.idDireccion AS IDDIRECCION
  32. FROM
  33. contribuyente a
  34.   INNER JOIN contrato con ON (a.idContribuyente=con.idContribuyente)
  35.   INNER JOIN  tipotoma tt ON (tt.idtipotoma=con.idTipoToma)
  36.   INNER JOIN direccion b ON (b.idDireccion = con.idDireccion)
  37.   INNER JOIN calle c ON (c.idCalle = b.idCalle)
  38.   INNER JOIN colonia d ON (d.idColonia = c.idColonia)
  39.   INNER JOIN cp cp ON (d.idCp=cp.idCp)
  40.   INNER JOIN municipio e ON (e.idMunicipio = d.idMunicipio)
  41.  
  42. WHERE con.idContribuyente
  43. IN (
  44. SELECT con.idContribuyente
  45. FROM contrato
  46. GROUP BY con.idContribuyente
  47. HAVING COUNT( con.idContribuyente ) >1
  48. )
  49. ORDER BY con.idContribuyente

gracias de antemano

Última edición por gnzsoloyo; 06/04/2015 a las 04:09 Razón: MUY MAL ETIQUETADO. Esxiste el Highlight "SQL". Usalo.
  #2 (permalink)  
Antiguo 06/04/2015, 04:01
 
Fecha de Ingreso: abril-2005
Mensajes: 22
Antigüedad: 19 años
Puntos: 0
Respuesta: Mostrar registros que se repitan mas de una vez

solucion

en el segundo from tenia q hacer referencia a todos los inner join de las tablas implicadas.

Código SQL:
Ver original
  1. SELECT
  2.  
  3.  a.idContribuyente AS "Id",
  4.   con.noContrato AS "#C",
  5.  CASE WHEN a.nombre IS NULL THEN ''
  6.  ELSE ISNULL(NULLIF(a.nombre, 'NULL') , '') END +' '+ CASE
  7.  WHEN a.apellidoPaterno IS NULL THEN ''
  8.  ELSE ISNULL(NULLIF(a.apellidoPaterno, 'NULL') , '') END +' '+ CASE
  9.  WHEN a.apellidoMaterno IS NULL THEN ''
  10.  ELSE ISNULL(NULLIF(a.apellidoMaterno, 'NULL') , '') END +' '+ CASE
  11.  WHEN a.razonSocial IS NULL THEN ''
  12.  ELSE ISNULL(NULLIF(a.razonSocial, 'NULL') , '') END AS "NOMBRE / RAZÓN SOCIAL",
  13.   a.nombre AS "NOMBRE",
  14.   a.apellidoPaterno AS PATERNO,
  15.   a.apellidoMaterno AS MATERNO,
  16.   a.razonSocial AS "RAZON SOCIAL",
  17.   c.calle + ' ' + CAST(b.no AS VARCHAR(5))+', '+ d.colonia +', '+ e.municipio +', '+ cp.cp  AS DIRECCION ,
  18.   d.colonia AS COLONIA,
  19.   e.municipio AS MUNICIPIO,
  20.   cp.cp AS "C.P.",
  21.   con.fechaContrato AS "FECHA DE CONTRATO",
  22.   tt.descripcion AS DESCRIPCIÓN,
  23.   tt.precio AS TARIFA,
  24.   c.calle AS NCALLE,
  25.   b.no AS NUM,
  26.     b.idCalle,
  27.   b.idColonia,
  28.   b.idMunicipio,
  29.   con.idTipoToma,
  30.   con.observaciones AS OBSERVACIONES,
  31.   con.idDireccion AS IDDIRECCION
  32. FROM
  33. contribuyente a
  34.   INNER JOIN contrato con ON (a.idContribuyente=con.idContribuyente)
  35.   INNER JOIN  tipotoma tt ON (tt.idtipotoma=con.idTipoToma)
  36.   INNER JOIN direccion b ON (b.idDireccion = con.idDireccion)
  37.   INNER JOIN calle c ON (c.idCalle = b.idCalle)
  38.   INNER JOIN colonia d ON (d.idColonia = c.idColonia)
  39.   INNER JOIN cp cp ON (d.idCp=cp.idCp)
  40.   INNER JOIN municipio e ON (e.idMunicipio = d.idMunicipio)
  41.  
  42. WHERE con.idContribuyente
  43. IN (
  44. SELECT con.idContribuyente
  45. FROM
  46. contribuyente a
  47.   INNER JOIN contrato con ON (a.idContribuyente=con.idContribuyente)
  48.   INNER JOIN  tipotoma tt ON (tt.idtipotoma=con.idTipoToma)
  49.   INNER JOIN direccion b ON (b.idDireccion = con.idDireccion)
  50.   INNER JOIN calle c ON (c.idCalle = b.idCalle)
  51.   INNER JOIN colonia d ON (d.idColonia = c.idColonia)
  52.   INNER JOIN cp cp ON (d.idCp=cp.idCp)
  53.   INNER JOIN municipio e ON (e.idMunicipio = d.idMunicipio)
  54. GROUP BY con.idContribuyente
  55. HAVING COUNT( con.idContribuyente ) >1
  56. )
  57. ORDER BY con.idContribuyente

Última edición por gnzsoloyo; 06/04/2015 a las 04:10 Razón: MUY MAL ETIQUETADO. Esxiste el Highlight "SQL". Usalo.

Etiquetas: registros, select, server, siguiente, sql, vez
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:07.