Sum+sum

di il
1 risposte

Sum+sum

Buongiorno a tutti. Sono un neofita del linguaggio sql pertanto chiedo scusa se il mio quesito vi risulterá banale.

Quello che vorrei provare a fare sarebbe fare la somma di piú SUM. Nel concreto ho queste due tabelle:

1)
SELECT [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ acción form_] , [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ asistente] , SUM([ARTIEM Hotels$Cal_ asistente acc_ formativa].[Horas asistencia teóricas]) AS TEORICAS,SUM([ARTIEM Hotels$Cal_ asistente acc_ formativa].[Horas asistencia reales]) AS REALES
FROM [ARTIEM Hotels$Cal_ asistente acc_ formativa]
GROUP BY [Cód_ acción form_], [Cód_ asistente]
ORDER BY [Cód_ acción form_], [Cód_ asistente]

2)
SELECT [ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ acción form_] , [ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ asistente] , SUM([ARTIEM Hotels$Píl_ asistente acc_ formativa].[Horas asistencia teóricas]) AS TEORICAS, SUM([ARTIEM Hotels$Píl_ asistente acc_ formativa].[Horas asistencia reales]) AS REALES
FROM [ARTIEM Hotels$Píl_ asistente acc_ formativa]
GROUP BY [Cód_ acción form_], [Cód_ asistente]
ORDER BY [Cód_ acción form_], [Cód_ asistente]


Vorrei sommare le somme delle "horas asistencia teoricas" e sommare le somme delle "horas asistencia reales" (somme che sono speculari nelle due tabelle ma con valori diversiin colonna).


Ad ora ho fatto un pó di tentativi ma tutti vani gli ultimi dei quali i seguenti:

SELECT SUM([ARTIEM Hotels$Cal_ asistente acc_ formativa].[Horas asistencia teóricas] + [ARTIEM Hotels$Píl_ asistente acc_ formativa].[Horas asistencia teóricas]) AS [H teór] , SUM[ARTIEM Hotels$Cal_ asistente acc_ formativa].[Horas asistencia reales] + SUM([ARTIEM Hotels$Píl_ asistente acc_ formativa].[Horas asistencia reales]) AS [H real]

FROM [ARTIEM Hotels$Cal_ asistente acc_ formativa] INNER JOIN [ARTIEM Hotels$Píl_ asistente acc_ formativa] ON [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ acción form_]=[ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ acción form_] AND [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ asistente]=[ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ asistente]



SELECT SUM(HORAS)
FROM [ARTIEM Hotels$Cal_ asistente acc_ formativa] INNER JOIN [ARTIEM Hotels$Píl_ asistente acc_ formativa] ON [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ acción form_]=[ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ acción form_] AND [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ asistente]=[ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ asistente]

( SELECT [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ acción form_] , [ARTIEM Hotels$Cal_ asistente acc_ formativa].[Cód_ asistente] , SUM([ARTIEM Hotels$Cal_ asistente acc_ formativa].[Horas asistencia teóricas]) AS TEORICAS,SUM([ARTIEM Hotels$Cal_ asistente acc_ formativa].[Horas asistencia reales]) AS REALES
FROM [ARTIEM Hotels$Cal_ asistente acc_ formativa]
GROUP BY [Cód_ acción form_], [Cód_ asistente]
ORDER BY [Cód_ acción form_], [Cód_ asistente]
UNION
SELECT [ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ acción form_] , [ARTIEM Hotels$Píl_ asistente acc_ formativa].[Cód_ asistente] , SUM([ARTIEM Hotels$Píl_ asistente acc_ formativa].[Horas asistencia teóricas]) AS TEORICAS, SUM([ARTIEM Hotels$Píl_ asistente acc_ formativa].[Horas asistencia reales]) AS REALES
FROM [ARTIEM Hotels$Píl_ asistente acc_ formativa]
GROUP BY [Cód_ acción form_], [Cód_ asistente]
ORDER BY [Cód_ acción form_], [Cód_ asistente] ) AS RESULTADO


Qualcuno sa dirmi cosa sbaglio o se ci sono altre formule che dovrei utilizzare e che tuttavia non conosco essendo nuovo di questo mestiere?

1 Risposte

  • Re: Sum+sum

    Ti conviene implementare una Stored Procedure, cosi' invece di impazzire a trovare una SELECT incasinata per ottenere quello che ti serve,
    usi banalmente le tue due select individuali, e le sommi.


    NON CHIEDERE che cosa e' una Stored Procedure !!!!
Devi accedere o registrarti per scrivere nel forum
1 risposte