sql >> Database teknologi >  >> RDS >> Sqlserver

SQL Kombiner data fra to forskellige datointervaller til ét resultatsæt

SELECT
    Period = 'QTD',
    Company,
    SUM(Call) as TotalCallsQTD,
    SUM(Call) - SUM(SoldCall) as FreeCallsQTD,
    SUM(SalableCall) as SalesRelatedCallsQTD,
    SUM(SoldCall) as SoldCallsQTD
FROM
    #tmpAllSales
WHERE
    CalledOn between @StartDate and @EndDate
GROUP BY
    Company
UNION ALL
SELECT
    Period = 'YTD',
    Company,
    SUM(Call) as TotalCallsYTD,
    SUM(Call) - SUM(SoldCall) as FreeCallsYTD,
    SUM(SalableCall) as SalesRelatedCallsYTD,
    SUM(SoldCall) as SoldCallsYTD
FROM
    #tmpAllSales
GROUP BY
    Company
ORDER BY
    Period, Company;
 

Hvis du vil have dem som en enkelt række for hver virksomhed, så:

;WITH q AS ( SELECT Company, SUM(Call) as TotalCallsQTD, SUM(Call) - SUM(SoldCall) as FreeCallsQTD, SUM(SalableCall) as SalesRelatedCallsQTD, SUM(SoldCall) as SoldCallsQTD FROM #tmpAllSales WHERE CalledOn between @StartDate and @EndDate GROUP BY Company ), y AS ( SELECT Company, SUM(Call) as TotalCallsYTD, SUM(Call) - SUM(SoldCall) as FreeCallsYTD, SUM(SalableCall) as SalesRelatedCallsYTD, SUM(SoldCall) as SoldCallsYTD FROM #tmpAllSales GROUP BY Company ) SELECT q.Company, qTotalCallsYTD = q.TotalCallsYTD, etc..., yTotalCallsYTD = y.TotalCallsYTD, etc... FROM q INNER JOIN y ON q.Company = y.Company ORDER BY q.Company;


  1. bestil sql-træhierarki

  2. MySQL Group By funktionalitet i anden version

  3. Er der nogen forskel mellem DateTime i c# og DateTime i SQL server?

  4. Postgres kolonne eksisterer ikke