Я использую SQL Server 2012.делает SUM С ПОМОЩЬЮ GroupBy
У меня ниже данные, где продукты А, В, С и D являются компонентами «ABCD» в BundleID. Я делаю сумму цены, делая группу BundleID. Проблема здесь в том, что я хочу, чтобы она выбрасывала ошибку и не делала сумму в случае, если цена продукта равна 0. Может кто-то предложить вам выход.
Можем ли мы заменить 0's evrywhere на какое-то фиктивное значение, чтобы произвести ошибку при выполнении суммы?
BundleID Product Price
ABCD A 5
ABCD B 10
ABCD C 0
ABCD D 20
EFGH E 50
EFGH F 100
EFGH G 50
EFGH H 10
WITH BUNDLE_SUM AS (
select S.BundleID,
SUM(CONVERT(float,LV.VALUE_0)) AS BUNDLE_SUM
from PM_SCOPE S
JOIN PM_LOOKUP_VALUE LV ON LV.SCOPE_ID = S.SCOPE_ID
WHERE LD.LOOkUP_NAME = 'Bundle Details'
GROUP BY S.BundleID
)
Спасибо.
Почему бы не просто исключить те, у кого «цена равна 0»? – Squirrel
Почему вы не добавляете другое условие в предложение where, например WHERE AND LD.Price> 0? –
- это LV.VALUE_0 то же поле цены, определенное в ваших данных образца? что такое тип данных столбца цены? –