2017-07-14 90 views
0

我这个查询工作正常。我需要有“piedini”这一栏的总和。你能帮我解决怎么做吗?我为查询找到的每个“Lunghezza”(长度)获取X行。我对这个领域不感兴趣,但只对从CASE SUM创建的sum o列“piedini”感兴趣。案例陈述汇总结果

SELECT 
EXTRAMAG.PRS_LUNGHEZZA,SUM(RIGHEDOCUMENTI.QTAGEST) AS TAVOLI, CASE WHEN EXTRAMAG.PRS_LUNGHEZZA < '2000' THEN SUM(RIGHEDOCUMENTI.QTAGEST)*4 ELSE SUM(RIGHEDOCUMENTI.QTAGEST)*6 END AS PIEDINI 
FROM dbo.TESTEDOCUMENTI 
INNER JOIN dbo.ANAGRAFICACF 
ON CODCLIFOR=CODCONTO 
INNER JOIN dbo.RIGHEDOCUMENTI 
ON PROGRESSIVO=IDTESTA AND TOTNETTORIGA <>'0' AND RIGHEDOCUMENTI.DESCRIZIONEART LIKE '%TAVOL%' 
INNER JOIN dbo.EXTRAMAG 
ON RIGHEDOCUMENTI.CODART=EXTRAMAG.CODART 
LEFT JOIN .dbo.ANAGRAFICAAGENTI 
ON CODAGENTE=CODAGENTE1 
LEFT JOIN dbo.TABPAGAMENTI 
ON CODPAGAMENTO = CODICE 
WHERE dbo.TESTEDOCUMENTI.DOCCHIUSO = '0' AND dbo.TESTEDOCUMENTI.BLOCCATO = '0' AND dbo.TESTEDOCUMENTI.TIPODOC = 'ORC' AND TESTEDOCUMENTI.DATACONSEGNA BETWEEN DATEADD(DAY, -60, GETDATE()) AND GETDATE() 
GROUP BY EXTRAMAG.PRS_LUNGHEZZA 

回答

1

尝试以下:

select sum(PIEDINI) from (

    SELECT XTRAMAG.PRS_LUNGHEZZA,SUM(RIGHEDOCUMENTI.QTAGEST) AS TAVOLI, CASE WHEN EXTRAMAG.PRS_LUNGHEZZA < '2000' THEN SUM(RIGHEDOCUMENTI.QTAGEST)*4 ELSE SUM(RIGHEDOCUMENTI.QTAGEST)*6 END AS PIEDINI 
    FROM dbo.TESTEDOCUMENTI 
    INNER JOIN dbo.ANAGRAFICACF 
    ON CODCLIFOR=CODCONTO 
    INNER JOIN dbo.RIGHEDOCUMENTI 
    ON PROGRESSIVO=IDTESTA AND TOTNETTORIGA <>'0' AND RIGHEDOCUMENTI.DESCRIZIONEART LIKE '%TAVOL%' 
    INNER JOIN dbo.EXTRAMAG 
    ON RIGHEDOCUMENTI.CODART=EXTRAMAG.CODART 
    LEFT JOIN .dbo.ANAGRAFICAAGENTI 
    ON CODAGENTE=CODAGENTE1 
    LEFT JOIN dbo.TABPAGAMENTI 
    ON CODPAGAMENTO = CODICE 
    WHERE dbo.TESTEDOCUMENTI.DOCCHIUSO = '0' AND dbo.TESTEDOCUMENTI.BLOCCATO = '0' AND dbo.TESTEDOCUMENTI.TIPODOC = 'ORC' AND TESTEDOCUMENTI.DATACONSEGNA BETWEEN DATEADD(DAY, -60, GETDATE()) AND GETDATE() 
    GROUP BY EXTRAMAG.PRS_LUNGHEZZA 


)t