SQL Server: СУММА () нескольких строк, включая где пункты

Regex.Replace("ThisIsMyCapsDelimitedString", "(\\B[A-Z])", " $1")
25
задан gbn 14 May 2010 в 19:26
поделиться

5 ответов

Это вернет итоговые значения для свойства и типа

SELECT  PropertyID,
        TYPE,
        SUM(Amount)
FROM    yourTable
GROUP BY    PropertyID,
            TYPE

. Это вернет только активные значения

SELECT  PropertyID,
        TYPE,
        SUM(Amount)
FROM    yourTable
WHERE   EndDate IS NULL
GROUP BY    PropertyID,
            TYPE

, и это вернет итоги для свойств

SELECT  PropertyID,
        SUM(Amount)
FROM    yourTable
WHERE   EndDate IS NULL
GROUP BY    PropertyID

......

45
ответ дан 28 November 2019 в 18:15
поделиться

Предложение WHERE всегда концептуально применяется (очевидно, что план выполнения может делать то, что он хочет) до GROUP BY . Он должен стоять перед GROUP BY в запросе и действовать как фильтр до того, как вещи будут SUM med, именно так работает большинство ответов здесь.

Вы также должны знать о необязательном предложении HAVING , которое должно стоять после GROUP BY . Это можно использовать для фильтрации результирующих свойств групп после GROUP ing - например, HAVING SUM (Amount)> 0

2
ответ дан 28 November 2019 в 18:15
поделиться

Попробуйте следующее:

SELECT
   PropertyId,
   SUM(Amount) as TOTAL_COSTS
FROM
   MyTable
WHERE
   EndDate IS NULL
GROUP BY
   PropertyId
8
ответ дан 28 November 2019 в 18:15
поделиться

вы имеете в виду getiing sum (количество всех типов) для каждого свойства, где EndDate имеет значение null:

SELECT propertyId, SUM(Amount) as TOTAL_COSTS
  FROM MyTable
 WHERE EndDate IS NULL
GROUP BY propertyId
5
ответ дан 28 November 2019 в 18:15
поделиться

похоже, что вам нужно что-то вроде:

select PropertyID, SUM(Amount)
from MyTable
Where EndDate is null
Group by PropertyID
4
ответ дан 28 November 2019 в 18:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: