none
ayuda con un sql RRS feed

  • Pregunta

  •  buenas tardes queria saber como puedo hacer para subar 2 columnas de distintas  consultas eso tengo que hacer:
    select sum(precio) as resto,coun(precio)*10 as precio_correcto
    from tbpedido  
    where cod='rpcr' 
    union
    select (sum(precio) -resto)+precio_correcto
    from tbpedido  
    
    
    
    pero me da error  :Msg 207, Level 16, State 1, Line 48
    El nombre de columna 'restar_total' no es válido.
    Msg 207, Level 16, State 1, Line 48
    El nombre de columna 'totalrprc' no es válido.
    lunes, 23 de mayo de 2016 13:20

Respuestas

  • carlos carpio2,

    El mensaje de error señala el nombre de dos columnas que no participan en el bloque de código que adjunta, aún así, lo que muestra no es correcto hacer por dos razones:

    1. El operador de conjuntos UNION ALL requiere que todos los conjuntos tengan la misma cantidad de columnas y correspondencia con el tipo de dato.
    2. En una operación UNION ALL no puede acceder al resultado de la primera consulta.

    Lo que requiere es algo como:

    SELECT
    	SUM(t1.precio) - SUM(t2.precio) + (COUNT(t2.precio) * 10)
    FROM
    	precio_correcto t1
    	LEFT JOIN precio_correcto t2 ON (t1.id = t2.id)
    		AND (t2.cod = 'rpcr')


    lunes, 23 de mayo de 2016 13:59