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

Comparacion entre tablas de la misma base de datos

Estas en el tema de Comparacion entre tablas de la misma base de datos en el foro de SQL Server en Foros del Web. Buen Dia, Espero alguien pueda ayudarme con este pequeño problema que tengo... Tengo dos tablas; en una tengo toda la informacion de mis productos con ...
  #1 (permalink)  
Antiguo 03/05/2013, 12:50
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Sonrisa Comparacion entre tablas de la misma base de datos

Buen Dia,

Espero alguien pueda ayudarme con este pequeño problema que tengo...

Tengo dos tablas; en una tengo toda la informacion de mis productos con sus precios y tengo otra tabla donde tengo algunos productos con el promedio, y lo que quiero hacer es comparar la tabla de productos con la tabla de promedios, y si hay algun producto que este en la tabla de producto y no este en la tabla de promedio me diga que el producto es nuevo...


he realizado query con case pero me sale null, tambien he hecho otros enlaces y solo me muestra aquellos productos que solo estan en la tabla de promedio.

Trabajo con SQL


Gracias a los que puedan ayudarme
  #2 (permalink)  
Antiguo 03/05/2013, 12:57
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparacion entre tablas de la misma base de datos

con un left join :) y un case pon un ejemplo de tus datos por favor :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 03/05/2013, 13:52
Avatar de yamiblancoc  
Fecha de Ingreso: agosto-2011
Mensajes: 103
Antigüedad: 12 años, 8 meses
Puntos: 4
Respuesta: Comparacion entre tablas de la misma base de datos

Este es mi case

Código SQL:
Ver original
  1. SELECT DISTINCT StoreID, NSO_StoreID, StoreName, IMDB_ProductID, NSO_ProductID, ProductName, VariableName,' 'AS x, variableValue AS regular, Average.Average, Price_MAX_min.Precio_Max, Price_MAX_min.Precio_Min, VariableComments ,
  2. CASE WHEN Audited_Facts_Regular.VariableValue = ' ' THEN 'Precio en Blanco'
  3. WHEN Average.Average=' ' THEN 'Producto Nuevo' END AS media
  4. FROM Price_MAX_min INNER JOIN Audited_Facts_Regular ON Price_MAX_min.IMDB_Product = Audited_Facts_Regular.IMDB_ProductID INNER JOIN
  5. Average ON Audited_Facts_Regular.IMDB_ProductID = Average.IMDB_Product WHERE VariableName LIKE '%regular%' ORDER BY IMDB_ProductID ASC



y un ejemplo seria
mi tabla de producto

IMDB_ProductID NSO_ProductID ProductName VariableValue
100202 418211 LAS-LLAVES-LIMON-900 20.7
100272 418353 LAS-LLAVES-LIMON-2700 53.8
100598 383555 ARIEL-T/DOWNY-810 20.74
102763 383687 HEAD-&-SHOULDERS-ADUL-SUAV-Y-MANEJ-ANT/CAS-2-1-400 20



tabla promedio
IMDB_ProductID NSO_ProductID ProductName VariableValue
100202 418211 LAS-LLAVES-LIMON-900 20
100272 418353 LAS-LLAVES-LIMON-2700 50
100598 383555 ARIEL-T/DOWNY-810 21


como veran el producto 102763 383687 HEAD-&-SHOULDERS-ADUL-SUAV-Y-MANEJ-ANT/CAS-2-1-400 no se encuentra en la tabla promedio por tanto es un producto nuevo ya que no tiene promedio para compararlo

Última edición por yamiblancoc; 03/05/2013 a las 14:16
  #4 (permalink)  
Antiguo 03/05/2013, 15:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparacion entre tablas de la misma base de datos

probando con los ids(solamente) obtenemos algo como esto:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. id INT
  4. )
  5.  
  6. CREATE TABLE #temp2
  7. (
  8. id INT
  9. )
  10.  
  11.  
  12. INSERT INTO #temp VALUES (100202)
  13. INSERT INTO #temp VALUES (100272)
  14. INSERT INTO #temp VALUES (100598)
  15. INSERT INTO #temp VALUES (102763)
  16.  
  17.  
  18. INSERT INTO #temp2 VALUES (100202)
  19. INSERT INTO #temp2 VALUES (100272)
  20. INSERT INTO #temp2 VALUES (100598)
  21.  
  22.  
  23. SELECT CASE WHEN t2.id IS NULL THEN 'Producto Nuevo' ELSE CONVERT(VARCHAR(10),t1.id) END AS campo FROM #temp AS t1
  24. LEFT JOIN #temp2 AS t2 ON (t1.id=t2.id)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: comparacion, sql, tablas
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 09:52.