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

Query (No repetir tuples en busqueda)

Estas en el tema de Query (No repetir tuples en busqueda) en el foro de SQL Server en Foros del Web. Buenas compañeros, para no hacer mucha introduccion en el tema resulta que tengo una tabla con los siguientes datos CATEGORY - COMPANY - CONTACT - ...
  #1 (permalink)  
Antiguo 28/06/2011, 14:45
 
Fecha de Ingreso: junio-2011
Ubicación: Mexicali, BC
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 0
Query (No repetir tuples en busqueda)

Buenas compañeros, para no hacer mucha introduccion en el tema resulta que tengo una tabla con los siguientes datos

CATEGORY - COMPANY - CONTACT - COUNTRY
BEVERAGES - ALFREDS FUTTERKISTE - MARIA ANDERS - GERMANY
BEVERAGES - ALFREDS FUTTERKISTE - MARIA ANDERS - GERMANY
BEVERAGES - ALFREDS FUTTERKISTE - MARIA ANDERS - GERMANY
BEVERAGES - BLAUER - HANNA MOSS - GERMANY
BEVERAGES - BLAUER - HANNA MOSS - GERMANY
BEVERAGES - FRANKENVERSAND - PETER FRANKEN - GERMANY

lo que yo quiero esque solo aparezcan las compañias una sola vez(aparecen varias veces debido a que existen varias ordenes de la misma empresa) solo quiero que no se repitan las compañias, ayuda

query:
-- todos los clientes alemanes que me compran bebidas
SELECT categoryName, CompanyName, ContactName, country
FROM categories, products, [order details], orders, customers
WHERE categoryname = 'beverages' and Products.categoryID = categories.categoryID and [order details].productID = products.productID and [order details].orderID = orders.orderID and orders.customerID = customers.customerID and country in ('Germany');

-- sql server 2005

gracias
  #2 (permalink)  
Antiguo 28/06/2011, 14:47
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Query (No repetir tuples en busqueda)

Debes utilizar el DISTINCT en tu select
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 28/06/2011, 14:52
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Query (No repetir tuples en busqueda)

y otras dos recomendaciones, primero no hagas las uniones entre tus tablas de esta forma:

Código:
FROM categories, products
WHERE Products.categoryID = categories.categoryID
en lugar de eso utiliza JOIN'S (INNER, LEFT O RIGTH) según sea el caso:

Código:
FROM categories INNER JOIN products 
ON Products.categoryID = categories.categoryID
Aunque el resultado es el mismo, JOIN's es mucho más eficiente.

Segundo trata de no utilizar sentencias IN, ya que estas son bastante ineficientes, en tu caso sería mejor simplemente poner esto:

Código:
country = 'Germany'
Saludos
Leo.
  #4 (permalink)  
Antiguo 28/06/2011, 15:18
 
Fecha de Ingreso: junio-2011
Ubicación: Mexicali, BC
Mensajes: 17
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Query (No repetir tuples en busqueda)

gracias a los dos, por la palabra distinct y las recomendaciones, lo de INNER sirve bastante, gracias hata luego

Etiquetas: ayudaquery, norepetir, sql-server-2005
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 04:01.