Suma kolumn Total

0

Cześć,
Podpowiedzcie jak mogę zsumować "wynikowe kolumny" zapytania mssql
Chodzi o takie coś
Kod mssql:


SELECT b.id_maszyna, c.Maszyna, SUM(a.Sztuki_dobre) AS Sztuki_dobre, SUM(a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz) AS Braki,
SUM(b.ilosc) AS ilosc, AVG(a.czas_cyklu) AS czas_cyklu,
((SUM(a.Sztuki_dobre + a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz) * AVG(a.czas_cyklu)/3600))AS czas_produktywny,
((3*3*8) - (((SUM(a.Sztuki_dobre + a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz) *AVG(a.czas_cyklu)/3600)))) AS brak_planu,
(SUM(a.Sztuki_dobre) +  SUM(a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz)) AS Ilosc
 
FROM formularz AS a
INNER JOIN zlecenia AS b ON a.Id_zlecenia = b.id
INNER JOIN maszyny AS c ON b.id_maszyna = c.Id_maszyny
WHERE CONVERT(datetime, a.Data, 101) BETWEEN '2016-04-04' and '2016-04-06'
GROUP BY b.id_maszyna, c.Maszyna

 

Obrazek:
<image>
a891d54668.png
</image>

0

Chciałbym dostać podsumowanie (Total) kolumn Sztuki_dobre, Braki, Czas_produktywny, brak_planu
W jaki sposób mogę to wykonać

0

Jeśli dobrze rozumiem to o coś takiego ci chodzi:

SELECT 
SUM(T.Sztuki_dobre), 
SUM(T.Braki), 
SUM(T.Czas_produktwny), 
SUM(T.brak_planu) FROM
(
    SELECT b.id_maszyna, c.Maszyna, SUM(a.Sztuki_dobre) AS Sztuki_dobre, SUM(a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz) AS Braki,
    SUM(b.ilosc) AS ilosc, AVG(a.czas_cyklu) AS czas_cyklu,
    ((SUM(a.Sztuki_dobre + a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz) * AVG(a.czas_cyklu)/3600))AS czas_produktywny,
    ((3*3*8) - (((SUM(a.Sztuki_dobre + a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz) *AVG(a.czas_cyklu)/3600)))) AS brak_planu,
    (SUM(a.Sztuki_dobre) +  SUM(a.Sztuki_braki_operator + a.Sztuki_braki_ustawiacz)) AS Ilosc
 
    FROM formularz AS a
    INNER JOIN zlecenia AS b ON a.Id_zlecenia = b.id
    INNER JOIN maszyny AS c ON b.id_maszyna = c.Id_maszyny
    WHERE CONVERT(datetime, a.DATA, 101) BETWEEN '2016-04-04' AND '2016-04-06'
    GROUP BY b.id_maszyna, c.Maszyna
) AS T
0

Dzięki za zainteresowanie, może nie do końca się jasno wyraziłem chodzi mi o coś takiego.
jak na rysunku poniżej:

<image> ![1866fd772c.png](//static.4programmers.net/uploads/attachment/1866fd772c.png) </image>
0

No i teraz jak w kolumnie id_maszyna która jest intem chcesz dodać tekst?
Takie rzeczy to już raczej powinna aplikacja kliencka sumować.
Mógłbyś co prawda wrzucić te dane do zmiennej tabelarycznej i na końcu zrobić insert into @mytab(col1, col2..) select sum(col1), sum(col2)... from @mytab
ale moim zdaniem powinieneś zsumować po stronie klienta.

0

Hmm znowu nie do końca dobrze opisałem. Total może być w kolumnie "Maszyna" a w zasadzie to może go nie być. Chodzi mi tylko o zsumowanie wyników, ale żeby połączyć to w jednej kolumnie

0

Tak sobie kombinuję z UNION ALL ale nie do końca mi to wychodzi... Dobry trop?

0

Tak z 10 lat MS SQL nie używałem, ale pamiętam, że było coś takiego jak COMPUTE

1 użytkowników online, w tym zalogowanych: 0, gości: 1