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

Campos calculado

Estas en el tema de Campos calculado en el foro de SQL Server en Foros del Web. Tengo una DB en SQL, tiene las siguientes tablas (entre otras)... La base de datos es para una empresa textil. TABLAS: MATERIAPRIMA: id_materiaPrima; descripcion, precioUnitario, ...
  #1 (permalink)  
Antiguo 11/01/2011, 13:11
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Campos calculado

Tengo una DB en SQL, tiene las siguientes tablas (entre otras)...

La base de datos es para una empresa textil.

TABLAS:

MATERIAPRIMA: id_materiaPrima; descripcion, precioUnitario, otros.
ARTICULO: id_articulo,precio,stock, otros.
MATERIAPRIMA-ARTICULO: id_materiaPrima,id_articulo, otros.

Al llenar la tabla MATERIAPRIMA como por ejemplo con:

MATERIAPRIMA: id_materiaPrima; descripcion, precioUnitario, otros.
MATERIAPRIMA:(1, tela A , $10, ) El precio esta por metro de tela
MATERIAPRIMA:(2, tela b , $20, ) El precio esta por metro de tela
MATERIAPRIMA:(3, tela c , $30, ) El precio esta por metro de tela

Al llenar la tabla MATERIAPRIMA-ARTICULO como por ejemplo con:
MATERIAPRIMA-ARTICULO: id_materiaPrima,id_articulo, otros.
MATERIAPRIMA-ARTICULO: (1, 1 , otros)
MATERIAPRIMA-ARTICULO: (2, 1 , otros)
MATERIAPRIMA-ARTICULO: (3, 1 , otros)

Hasta aca tendria que por ejemplo el ARTICULO "1" esta compuesto por Tela A, Tela B, Tela C.

Pero la hora de poner el precio Final del articulo, el mismo no utiliza 1 metro de las telas, sino que utiliza 0.20mts, 045 mts y 0.70 mts (de la tela A, B y C respectivamente) (como para dar una idea)


Como se calcularia el campo precio de la tabla ARTICULOS?

Gracias
  #2 (permalink)  
Antiguo 11/01/2011, 14:14
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: Campos calculado

¿Como sabes esto?

Hasta aca tendria que por ejemplo el ARTICULO "1" esta compuesto por Tela A, Tela B, Tela C.

¿Es pura deduccion?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 11/01/2011, 14:29
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Campos calculado

Prueba asi:
Código SQL:
Ver original
  1. SELECT a.id_articulo, SUM(CASE id_materiaPrima
  2. WHEN 1 THEN mp.precioUnitario * 0.2
  3. WHEN 2 THEN mp.precioUnitario * 0.45
  4. WHEN 3 THEN mp.precioUnitario * 0.7
  5. END) costo
  6. FROM ARTICULO a
  7. INNER JOIN [MATERIAPRIMA-ARTICULO] ma ON a.id_articulo = ma.id_articulo
  8. INNER JOIN MATERIAPRIMA mp ON ma.id_materiaPrima = mp.id_materiaPrima
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 11/01/2011, 14:29
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Campos calculado

Cita:
Iniciado por iislas Ver Mensaje
¿Como sabes esto?

Hasta aca tendria que por ejemplo el ARTICULO "1" esta compuesto por Tela A, Tela B, Tela C.

¿Es pura deduccion?
No, Relacion entre tablas.
  #5 (permalink)  
Antiguo 11/01/2011, 14:46
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Campos calculado

Cita:
Iniciado por flaviovich Ver Mensaje
Prueba asi:
Código SQL:
Ver original
  1. SELECT a.id_articulo, SUM(CASE id_materiaPrima
  2. WHEN 1 THEN mp.precioUnitario * 0.2
  3. WHEN 2 THEN mp.precioUnitario * 0.45
  4. WHEN 3 THEN mp.precioUnitario * 0.7
  5. END) costo
  6. FROM ARTICULO a
  7. INNER JOIN [MATERIAPRIMA-ARTICULO] ma ON a.id_articulo = ma.id_articulo
  8. INNER JOIN MATERIAPRIMA mp ON ma.id_materiaPrima = mp.id_materiaPrima

Gracias por la respuesta. De todas maneras los solucione por codigo.

Etiquetas: campos, calculadora
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 06:51.