Я занимаюсь кодированием в MS.SQL Server. У меня есть небольшая таблица ниже:
INV_NUM INV_AMOUNT
------- ----------
8000 235
8001 312
8002 528
8003 194
8004 619
Я хотел бы написать запрос для всех счетов, которые будут отображаться:
- номер счета,
- сумма счета,
- средняя сумма счета и
- разница между средней суммой счета и фактической суммой счета.
Мой код ниже:
SELECT I.INV_NUM,I.INV_AMOUNT,AVG(I.INV_AMOUNT) as AVERAGE,(AVG(INV_AMOUNT)-I.INV_AMOUNT) as DIFFER
FROM INVOICE I
GROUP BY I.INV_NUM,I.INV_AMOUNT;
Результат в MS SQL не сгенерировал значение avg, вместо этого он показывает значение INV_AMOUNT в каждой строке.
Результат:
INV_NUM INV_AMOUNT Average Differ
--------- ------------------------------------
8003 194 194 0
8000 235 235 0
8001 312 312 0
8002 528 528 0
8004 619 619 0
--------------- -------------------------------
Я обнаружил, что если у меня есть только одна строка в таблице, она работает нормально.
Почему это случилось? Спасибо!