Связанные подзапросы в предложении select

  • Часть 1
  • | 2
  • | 3

5. Повторяются пп.1-4, пока каждая строка таблицы Abonent не будет просмотрена.

Если  во  внешнем  запросе  используется  предложение  GROUP  BY,  то выражения, указанные в нем, можно использовать внутри подзапросов.

Например, с помощью следующего связанного вложенного запроса можно получить общие суммы начислений и оплат по каждому абоненту: SELECT AccountCD,

(SELECT Sum (NachislSum) FROM NachislSumma N WHERE N.AccountCD = P.AccountCD)

AS Nachisl, Sum (PaySum) AS Pay FROM PaySumma P GROUP BY AccountCD;. Результат выполнения запроса представлен на рис. 3.95.

ACCOUNTCD

NACHISL

PAY

005488

222,83

222,83

015527

84,96

84,96

080047

256,88

256,88

080270

221,30

221,30

080613

114,66

114,66

115705

747,95

747,95

126112

40,60

40,60

136159

16,60

16,60

136160

112,60

112,60

136169

160,66

160,66

443069

195,10

195,10

443690

39,47

39,47

Рис. 3.95. Результат соотнесенного вложенного запроса

Здесь в подзапросе вычисляется общая сумма всех начислений для абонента, отобранного внешним запросом. Затем возвращенное подзапросом значение выводится по каждому абоненту в результирующем столбце Nachisl. Из результата следует, что каждый абонент полностью оплатил начисленные ему суммы.

предыдущаяследующая