Изчисление на кумулативната сума на базата на заявените от базата данни на данни

Докладите, получени въз основа на данните, съхранявани в базата данни, понякога се изисква да се изчисли общия сбор. В нашия случай, това е разликата между сто процента и сумата от стойностите на колоните, като процент от всички редове са разположени над това. Натрупаната сума за първия ред в нареди набор е равна на 100%.

Има различни начини за изчисляване на сумата от стойностите на предишния ред. Въпреки това, съществуват важни техники, използвани за генериране на доклади, бази данни, версията му.

1. Оферта НАД + ROWS

В нашия случай, в подкрепа на функционалността на стария проект с помощта на по-ранна версия на MS SQL Server, а след това трябва да се обърнат към други възможности за изчисление. За една от тези възможности включват използването на корелация под-запитвания.

2. корелативна подзаявка

Корелативна подзаявка - подзаявка, който съдържа линк към колони, състоящи се от искането си (магистър). По този начин, корелира подзаявка се извършва за всеки ред на основната заявка, като заявка основните стойности на колоната ще варират.

Действителната заявката, с които ние се занимаваме с много по-голям обем, отколкото е показано в примера: процентите не се съхраняват в базата данни, ние първо трябва да ги изчисли за брои броя на студентите. Използването на корелация подзаявки твърде усложни съществуващ код и драстично намаляване на производителността на запитването към базата данни.

3. С помощта на технологии SQL CLR

В нашия случай, ние ще се доближава до възможността за CLR-функции. SQL технология CLR ни позволява да се разшири функционалността на SQL Server с помощта на C #. На инстанция на SQL Server, можете да създадете функция, която е програмиран в съвкупност, създадена в средносрочен CLR Microsoft .NET Framework платформа.

При статичния C # CLR-метод група от основата, получаваме в променлива резултат от тип Generic.List исканата линия. Преди да се върне данни за заявките за показване, премине през всички редове на списъка и с нетърпение очакваме да ги размера на лихвата от предишните линии, използващи LINQ към SQL инструменти:

Използване на SQL CLR може да създаде написани на високи езици съхранените процедури, тригери, дефинирани от потребителя типове и функции, както и агрегати. Това ви позволява да сериозно да се подобри ефективността и разширяване на функционалността на сървъра, за да невъобразими граници.