entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Hola necesito realizar una consulta la cual me calcule el porcentaje

SELECT concat(biencatalogo.nombien ,marca.nommarca,modelo.nommodelo,
bien.serie) as caracteristicas,bien.fijo_movil,bien.propietarioemp,
bien.codbieninv,YEAR(CURDATE())- YEAR(fechaadq) AS
 edad,bien.costo_inicial,bien.costo_inicial*10/100 as costo, -- AQUI EL PROBLEMA QUE NO IMPORTA LOS AÑOS QUE TENGA A EL COSTO INICIAL LE SACA EL 10% Y DEBE ACTUALIZAR POR AÑOS QUE TENGA EL EQUIPO
centro_gestor.centro,
 centro_gestor.arefun from bien 
inner join centro_gestor on bien.centro = centro_gestor.centro
inner join biencatalogo on biencatalogo.codbiencat = bien.codbiencat 
inner join marca on marca.codmarca = bien.codmarca 
inner join modelo on modelo.codmodelo = bien.codmodelo 
where propietarioemp = 'capufe' and bien.debaja='NO'

0voto

TMPR comentado

Alguien que me ayude por favor!!

0voto

matti comentado

No probastes usando la funciona AVG en vez de hacer el *10/100?

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @TMPR,

si el resto de la query está bien (cosa que no podemos comprobar sin la estructura de las tablas y un lote de pruebas), lo que tenés que hacer es cambiar el 10 que ponés fijo por la cantidad de años que tenga el equipo.

Sería algo como:

SELECT concat(biencatalogo.nombien ,marca.nommarca,modelo.nommodelo,
bien.serie) as caracteristicas,bien.fijo_movil,bien.propietarioemp,
bien.codbieninv,YEAR(CURDATE())- YEAR(fechaadq) AS
 edad,bien.costo_inicial,bien.costo_inicial*(100 - YEAR(CURDATE())- YEAR(fechaadq))/100 as costo, centro_gestor.centro,
 centro_gestor.arefun from bien 
inner join centro_gestor on bien.centro = centro_gestor.centro
inner join biencatalogo on biencatalogo.codbiencat = bien.codbiencat 
inner join marca on marca.codmarca = bien.codmarca 
inner join modelo on modelo.codmodelo = bien.codmodelo 
where propietarioemp = 'capufe' and bien.debaja='NO'

Es decir, en vez de poner fijo el 10, usás 100 - edad, así algo de 0 años tiene el 100% del valor, algo de 10 años el 90% del valor y así sucesivamente.

Esto significa que TODO tarda 100 años en amortizarse por completo.

Saludos cordiales

0voto

Leonardo-Tadei comentado

Yo no entiendo todavía qué calculo necesitás hacer :-( Podrías poner una tabla de valores?
Algo como:

costo   año resultado
100 0   xxx
100 1   xxx
100 2   xxx
100 3   xxx
...
100 12  xxx

0voto

TMPR comentado

HOLA
@Leonardo-Tadei

COSTO --- AÑO --- RESULTADO
100 --- 0 --- 100
100 --- 1 --- 90
90 --- 2 --- 81
81 --- 3 --- 72.90

suponiendo que tiene tres años el equipo y su costo inicial es de $100, debe retomar el resultado anterior para quitarle el 10 % segun los años que tenga el equipo

0voto

Leonardo-Tadei comentado

Por favor, extendé tu tabla hasta 12 años (te lo pido más arriba, y más arriba...)

0voto

TMPR comentado

@Leonardo-Tadei
Listo

COSTO --- AÑO --- RESULTADO
100 --- 0 --- 100
100 --- 1 --- 90
90 --- 2 --- 81
81 --- 3 --- 72.90
72.90--- 4 --- 65.61
65.61 --- 5 --- 59.05
59.05---- 6 --- 53.14
53.14 -- 7 -- 47.83
47.83 -- 8 -- 43.05
43.05 -- 9 ---- 38.74
38.74 ---- 10 --- 34.87
34.87----11----31.38
31.38-----12----28.24
28.24----13-----25.42

0voto

TMPR comentado

Hola
@Leonardo-Tadei ..
Encontraste solucion a mi problema??
Yo lo quise solucionar con un ciclo asi ..

for($i=0; $i=YEAR(CURDATE())- YEAR(fechaadq);$i++){
$porcentaje = $costo_inicial *.10
$precioactualizado=$precioactualizado-$porcentaje

}

Lo hice a papel y si me da,
pero no puedo ponerlo en la consulta como tal , no se si podrias ayudarme en esa parte.
Gracias

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta