SQL - Agrupamiento

   
Vista:

Agrupamiento

Publicado por Saul (6 intervenciones) el 30/05/2013 21:03:12
Hola amigos tengo el siguiente problema, y quiero ver si ustedes me ayudan

Tengo una tabla con los siguientes datos

Tabla MovVentas

CODIGO - NIT -- FACTURA - VALOR
-----------------------------------------------------------------

Select * FROM MovVentas

0000001 1234 5 100
0000001 1234 5 100
0000001 1234 6 100
0000002 1234 20 50
0000003 CF 12 100
0000004 CF 15 100
0000005 CF1 18 100
0000006 CF1 18 100
0000007 CF 19 100
0000008 CF1 23 100


El problema que tengo que hacer es yo necesito que no me salgan repetidos los codigos NIT
Es decir de esos codigo NIT QUE vemos alli hay que seleccionar unicamente uno.

Y que al hacer el Query solo me muestre un Nit, por razones de estrategia, se puso el mismo NIT pero con diferente CODIGO de cliente.

0000001 1234 5 100
0000003 CF 12 100
0000005 CF1 18 100

- Ya lo trate de agrupar por NIT pero como hay que agrupar todas las columnas me da igual.
- Ya trate también haciendo un DISTINCT a la consulta y hacer algo asi.

Select * FROM MovVentas As a
INNER JOIN (Select DISTINCT FROM MovVentas) As b ON b.NIT = a.NIT

OTRA OPCION

Select * FROM MovVentas As a
a.NIT IN (Select DISTINCT FROM MovVentas)

Pero no funciona puesto que mi segunda Sub conLsuta si agrupa los NIT, pero como como la primera Consulta tiene los NIT, simpre me muestra todo.
Como hago para que me seleccione solo los agrupados, y que los demás los descarte.
(espero haber sido claro.. )

Por su ayuda muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Agrupamiento

Publicado por Saul (6 intervenciones) el 31/05/2013 00:36:12
Jovenes gracias por la visita hay les dejo el Codigo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Select
	Nit,
	(Select
		Top 1 Factura
	From
		MovVentas A (NoLock)
	Where
		A.Nit = V.Nit) As Factura,
	(Select
		Top 1 Codigo
	From
		MovVentas A (NoLock)
	Where
		A.Nit = V.Nit) As Codigo,
	(Select
		Top 1 Monto
	From
		MovVentas A (NoLock)
	Where
		A.Nit = V.Nit) As Monto
From
	MovVentas V (NoLock)
Group By
	V.nit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Isaias Islas Gonzalez

Agrupamiento

Publicado por Isaias Islas Gonzalez (690 intervenciones) el 31/05/2013 00:38:58
¿Para que base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Agrupamiento

Publicado por Saul (6 intervenciones) el 31/05/2013 06:20:22
Lo puedes usar en cualquier que sea SQL

Obviamente cambian algunas cosas

en MYSQL el TOP es LIMIT (y lo trabajas en la ultima linea después del WHERE)
en DB2 es Fetch First 1 rows only

Suerte

Sha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Agrupamiento

Publicado por xve (237 intervenciones) el 31/05/2013 08:07:10
gracias por comentarlo Saul!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar