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

Porcentaje en Query Sql

Deseo sacar el porcentaje unitario de la columna NumeroDoc es el mismo (ID), en esta columna se repiten algunos Números ID así que sumo para realizar la operación, no me genera el resultado esperado.

El siguiente Script

SELECT    CD.NumeroDoc, sum(CMD.CapitalSDO), (SELECT  CMD.CapitalSDO*100/nullif(SUM(CMD.CapitalSDO),0)) TDP
FROM ccCierreMesCartera AS CMD
RIGHT join ccCreditoDocu AS CD ON CMD.NumeroDoc = CD.NumeroDoc
GROUP BY CD.NumeroDoc, CapitalSDO
ORDER BY CD.NumeroDoc ASC

0voto

Leonardo-Tadei comentado

Podrías porner 4 o 5 valores de ejemplo y la proyección que querés obtener?
Al menos a mi no me queda claro que es "el porcentaje unitario" que querés calcular...

0voto

wroque comentado

Crea un procedimiento de almacenado, para realizar dicha operación de lo contrario no lo veo factible.

0voto

Leonardo-Tadei comentado

Se se puede resolver en un procedimiento almacenado, también podría resolverse en una query que implemente las mismas instrucciones del store procedure...

0voto

McJeffer comentado

No conozco muy bien el tema soy nuevo y deseo aprender.
Tengo una columna NumeroDoc que contiene los IDs de los clientes y otro campo CapitalSDO que contienen los valores de los clientes, los IDs se repiten ya que los valores son diferentes, Ahora que deseo, Necesito el porcentaje unitario que corresponde a cada fila para que el valor total del IDs sea mi 100%, Agradezco su ayuda

0voto

wroque comentado

pero que es lo correcto o que consumiría menos recursos ? una query o un procedimiento de almacenado (Eficaz o Eficiente)

0voto

Leonardo-Tadei comentado

Hola @wroque,

para determinar lo más eficás y eficiente, lo mejor es escribir ambos métodos y medir la velocidad de respuesta y el consumo de recursos. No hay una respuesta que valga para todo comparando querys con store procedures... igual, la pregunta de @McJeffer es sobre cómo escribir la query, y no sobre qué forma de ejecutarla es mejor... lo cual sería una nueva pregunta muy interesante.

0voto

wroque comentado

entonces es cosa de seguir la teoría de las ventanas rotas (es una historia que leí), bueno esto no me afecta en lo más mínimo, yo busco ambas caracterizas, así que suerte!

1 Respuesta

2votos

white Puntos75800

si te entendi bien quieres calcular el porcentaje de la columna capitalSDO donde el total es la suma de esta misma columna. CAPITAL SDO * 100 / SUMA CAPITAL SDO, es asi?

intenta con un left join y SUM

SELECT CD.NumeroDoc, (CMD.CapitalSDO * 100 / CMD2.total) AS percent
FROM ccCierreMesCartera AS CMD
LEFT JOIN  (SELECT numeroDoc, SUM(CapitalSDO) as total
            FROM ccCierreMesCartera
            GROUP BY numeroDoc)
AS CMD2 ON CMD2.numeroDoc = CMD.numeroDoc
RIGHT join ccCreditoDocu AS CD ON CMD.NumeroDoc = CD.NumeroDoc

0voto

McJeffer comentado

White,
La operación que deseo es la siguiente .....CAPITAL SDO * 100 / SUMA CAPITAL SDO....

0voto

white comentado

mi disculpas, error mio al escribir. La consulta hace justo lo que dices, intenta y nos avisas si te funcionó.

0voto

McJeffer comentado

Muchas Gracias White, Voy a realizar una consulta nueva sobre como hacer un Pivot Dinamico por favor solicito la ayuda

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