
Ayuda consulta sql(SELECCIONAR ID DESDE UNA CONSULTA Y EJECUTAR LA OTRA SEGUN ESOS ID)
Publicado por marlags (1 intervención) el 21/04/2016 16:35:10
Buenos días, llevo días intentado realizar una consulta que me permita
seleccionar los id_componentes de una tabla según un campo en este caso sería la tabla componentes donde quiero que me muestre los id_componente según el id_remesa de esta tabla que es lo que tienen en común. Luego necesito que desde la tabla items me muestre el monto de cada item según el id_componente de la consulta anterior y el id_remesa, hasta ahí va bien, PERO al querer recorrer la segunda consulta no se como asignarle los id_componente siendo que en la consulta anterior tengo una lista de estos y no los obtengo de a uno.
EJ:
- Remesa(id: 28): (esta tiene 2 componentes )
-- componente1: item1($4000), item2($2000), item3($0)
-- componente2: item1($3000), item2($0), item3(1000)
TABLAS:
consulta 1: Aquí obtengo todos los id_componente relacionados a una remesa
consulta 2: Aquí obtengo el monto del item relacionado a la misma remesa y a un componente
Necesito hacer esto por cada componente mostrado en la consulta 1.
Espero me puedan ayudar, ya que ya no se que más hacer, no me manejo mucho en SQL :/
resultado esperado:
seleccionar los id_componentes de una tabla según un campo en este caso sería la tabla componentes donde quiero que me muestre los id_componente según el id_remesa de esta tabla que es lo que tienen en común. Luego necesito que desde la tabla items me muestre el monto de cada item según el id_componente de la consulta anterior y el id_remesa, hasta ahí va bien, PERO al querer recorrer la segunda consulta no se como asignarle los id_componente siendo que en la consulta anterior tengo una lista de estos y no los obtengo de a uno.
EJ:
- Remesa(id: 28): (esta tiene 2 componentes )
-- componente1: item1($4000), item2($2000), item3($0)
-- componente2: item1($3000), item2($0), item3(1000)
TABLAS:
1
2
3
4
5
6
7
8
9
TABLA_COMPONENTES
id_componente
nombre_componente
id_remesa
TABLA_ITEM
id_item
monto_subtitulo_actual
id_componente
id_remesa
consulta 1: Aquí obtengo todos los id_componente relacionados a una remesa
1
2
3
4
5
SELECT componentes.ID_COMPONENTE
FROM componentes, items
WHERE ITEMS.ID_REMESA = @id_remesa and items.id_componente = componentes.id_componente
consulta 2: Aquí obtengo el monto del item relacionado a la misma remesa y a un componente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SELECT componentes.nombre_componente,ISNULL((
SELECT monto_subtitulo_actual FROM items, componentes
WHERE id_subtitulo = 1 AND items.id_remesa = @id_remesa
AND items.id_componente = componentes.id_componente
AND componentes.id_componente = @id_componente
),0)as rrhh,
ISNULL((
SELECT monto_subtitulo_actual FROM items, componentes
WHERE id_subtitulo = 2 AND items.id_remesa = @id_remesa
AND items.id_componente = componentes.id_componente
AND componentes.id_componente = @id_componente
),0)as bys,
ISNULL((
SELECT monto_subtitulo_actual FROM items, componentes WHERE id_subtitulo = 3
AND items.id_remesa = @id_remesa AND items.id_componente = componentes.id_componente
AND componentes.id_componente = @id_componente
),0)as inversiones from componentes where componentes.id_componente = @id_componente
Necesito hacer esto por cada componente mostrado en la consulta 1.
Espero me puedan ayudar, ya que ya no se que más hacer, no me manejo mucho en SQL :/
resultado esperado:
1
2
3
4
5
| NOMBRE COMPONENTE | MONTO ITEM1 | MONTO ITEM2 | MONTO ITEM3 |
|COMPONENTE 1 | 4000 | 2000 | 0 |
|COMPONENTE 2 | 3000 | 0 | 1000 |
Valora esta pregunta


0