
DB2. Update dinámico
Publicado por David (3 intervenciones) el 15/09/2015 13:59:50
Hola, os explico lo que quiero hacer, a ver si alguien me puede echar una mano.
Tengo estas tres tablas en una base de datos DB2:
TIPO_CATEGORIA
- ID_TIPO_CATEGORIA
- NOMBRE
CATEGORIA
- ID_CATEGORIA
- TITULO
- ID_TIPO_CATEGORIA
PRESUPUESTO_CATEGORIA
- ID_PRESUPUESTO
- ID_CATEGORIA
En la tabla TIPO_CATEGORIA tengo el siguiente registro:
- ID_TIPO_CATEGORIA: 1 - NOMBRE: TIPO CATEGORIA1
En la tabla CATEGORIA tengo varias categorías asociadas al tipo de categoría 1:
- ID_CATEGORIA: 1 - TITULO: CATEGORIA1 - ID_TIPO_CATEGORIA: 1
- ID_CATEGORIA: 2 - TITULO: CATEGORIA2 - ID_TIPO_CATEGORIA: 1
- ID_CATEGORIA: 3 - TITULO: CATEGORIA3 - ID_TIPO_CATEGORIA: 1
En la tabla PRESUPUESTO_CATEGORIA existen varios presupuestos asociados a categorías con tipo de categoría 1:
- ID_PRESUPUESTO: 1 - ID_CATEGORIA: 1
- ID_PRESUPUESTO: 2 - ID_CATEGORIA: 2
- ID_PRESUPUESTO: 3 - ID_CATEGORIA: 1
- ID_PRESUPUESTO: 4 - ID_CATEGORIA: 3
El tema es que tengo que crear un nuevo tipo de categoría:
- ID_TIPO_CATEGORIA: 2 - NOMBRE: TIPO CATEGORIA2
Además tengo que crear para este nuevo tipo de categoría (TIPO CATEGORIA2), las mismas categorías que existen en la tabla de CATEGORIAS para el tipo de categoría 1.
- ID_CATEGORIA: 4 - TITULO: CATEGORIA1 - ID_TIPO_CATEGORIA: 2
- ID_CATEGORIA: 5 - TITULO: CATEGORIA2 - ID_TIPO_CATEGORIA: 2
- ID_CATEGORIA: 6 - TITULO: CATEGORIA3 - ID_TIPO_CATEGORIA: 2
Hasta aquí todo correcto. Pues bien, a ver si me explico... Ahora lo que quiero es hacer un UPDATE sobre la tabla PRESUPUESTO_CATEGORIA, para que aquellos presupuestos cuya categoría relacionada es de tipo categoria 1, se asocien ahora a las categorías con tipo de categoria 2, que tengan el mismo nombre (campo TITULO) que las categorías con tipo de categoría 1 con las que están relacionados esos presupuestos originalmente. Es decir, atendiendo al ejemplo de datos expuesto anteriormente, la tabla PRESUPUESTO_CATEGORIA debería quedar así:
- ID_PRESUPUESTO: 1 - ID_CATEGORIA: 4
- ID_PRESUPUESTO: 2 - ID_CATEGORIA: 5
- ID_PRESUPUESTO: 3 - ID_CATEGORIA: 4
- ID_PRESUPUESTO: 4 - ID_CATEGORIA: 6
Como podéis ver se ha modificado la relación y aquellos presupuestos que tenían asociadas las categorías con tipo de categoría 1, CATEGORIA1, CATEGORIA2 Y CATEGORÍA3, ahora tienen asociadas las categorías con tipo de categoría 2, con el mismo nombre (TITULO).
Entiendo que habrá alguna manera de hacer el update en una sola sentencia para modificar esta relación, pero por más que llevo pegándome durante toda la mañana no soy capaz de dar con ella. Por favor, ¿alguien podría ayudarme?
Muchas gracias por molestaros en leerlo y un saludo.
David
Tengo estas tres tablas en una base de datos DB2:
TIPO_CATEGORIA
- ID_TIPO_CATEGORIA
- NOMBRE
CATEGORIA
- ID_CATEGORIA
- TITULO
- ID_TIPO_CATEGORIA
PRESUPUESTO_CATEGORIA
- ID_PRESUPUESTO
- ID_CATEGORIA
En la tabla TIPO_CATEGORIA tengo el siguiente registro:
- ID_TIPO_CATEGORIA: 1 - NOMBRE: TIPO CATEGORIA1
En la tabla CATEGORIA tengo varias categorías asociadas al tipo de categoría 1:
- ID_CATEGORIA: 1 - TITULO: CATEGORIA1 - ID_TIPO_CATEGORIA: 1
- ID_CATEGORIA: 2 - TITULO: CATEGORIA2 - ID_TIPO_CATEGORIA: 1
- ID_CATEGORIA: 3 - TITULO: CATEGORIA3 - ID_TIPO_CATEGORIA: 1
En la tabla PRESUPUESTO_CATEGORIA existen varios presupuestos asociados a categorías con tipo de categoría 1:
- ID_PRESUPUESTO: 1 - ID_CATEGORIA: 1
- ID_PRESUPUESTO: 2 - ID_CATEGORIA: 2
- ID_PRESUPUESTO: 3 - ID_CATEGORIA: 1
- ID_PRESUPUESTO: 4 - ID_CATEGORIA: 3
El tema es que tengo que crear un nuevo tipo de categoría:
- ID_TIPO_CATEGORIA: 2 - NOMBRE: TIPO CATEGORIA2
Además tengo que crear para este nuevo tipo de categoría (TIPO CATEGORIA2), las mismas categorías que existen en la tabla de CATEGORIAS para el tipo de categoría 1.
- ID_CATEGORIA: 4 - TITULO: CATEGORIA1 - ID_TIPO_CATEGORIA: 2
- ID_CATEGORIA: 5 - TITULO: CATEGORIA2 - ID_TIPO_CATEGORIA: 2
- ID_CATEGORIA: 6 - TITULO: CATEGORIA3 - ID_TIPO_CATEGORIA: 2
Hasta aquí todo correcto. Pues bien, a ver si me explico... Ahora lo que quiero es hacer un UPDATE sobre la tabla PRESUPUESTO_CATEGORIA, para que aquellos presupuestos cuya categoría relacionada es de tipo categoria 1, se asocien ahora a las categorías con tipo de categoria 2, que tengan el mismo nombre (campo TITULO) que las categorías con tipo de categoría 1 con las que están relacionados esos presupuestos originalmente. Es decir, atendiendo al ejemplo de datos expuesto anteriormente, la tabla PRESUPUESTO_CATEGORIA debería quedar así:
- ID_PRESUPUESTO: 1 - ID_CATEGORIA: 4
- ID_PRESUPUESTO: 2 - ID_CATEGORIA: 5
- ID_PRESUPUESTO: 3 - ID_CATEGORIA: 4
- ID_PRESUPUESTO: 4 - ID_CATEGORIA: 6
Como podéis ver se ha modificado la relación y aquellos presupuestos que tenían asociadas las categorías con tipo de categoría 1, CATEGORIA1, CATEGORIA2 Y CATEGORÍA3, ahora tienen asociadas las categorías con tipo de categoría 2, con el mismo nombre (TITULO).
Entiendo que habrá alguna manera de hacer el update en una sola sentencia para modificar esta relación, pero por más que llevo pegándome durante toda la mañana no soy capaz de dar con ella. Por favor, ¿alguien podría ayudarme?
Muchas gracias por molestaros en leerlo y un saludo.
David
Valora esta pregunta


0