У овом водичу ћемо научити како да користимо наредбу ЦАСЕ са функцијом СУМ и клаузулом ГРОУП БИ.
Овај водич не покрива основе рада са СКЛ Цасе наредбом, функцијом сум() или клаузулом ГРОУП БИ. Ако тражите основе ових СКЛ функција, погледајте наше туторијале о темама да бисте их даље открили.
Проблем:
Рецимо да имамо табелу под називом „поруџбине“ и желимо да добијемо укупну продају за сваког купца који је груписан према ИД-у купца, али такође желимо да израчунамо попуст за купце који су дали више од две поруџбине.
Табела је приказана у наставку:
ЦРЕАТЕ ТАБЛЕ налога (
ордер_ид ИНТ ПРИМАРНИ КЉУЧ,
цустомер_ид ИНТ,
продуцт_ид ИНТ,
ордер_дате ДАТЕ,
количина ИНТ,
цена ДЕЦИМАЛ ( 10 , 2 )
) ;
Уметните узорак података у табелу као што је приказано у наставку:
ИНСЕРТ ИНТО ордерс ( ордер_ид, цустомер_ид, продуцт_ид, ордер_дате, куантити, прице )
ВРЕДНОСТИ
( 1 , 101 , 1 , '2022-04-01' , 2 , 10.99 ) ,
( 2 , 102 , 2 , '2022-04-01' , 1 , 19.99 ) ,
( 3 , 103 , 1 , '2022-04-02' , 3 , 8.99 ) ,
( 4 , 101 , 3 , '2022-04-03' , 2 , 15.99 ) ,
( 5 , 102 , 1 , '2022-04-03' , 1 , 12.99 ) ,
( 6 , 104 , 2 , '2022-04-04' , 4 , 7.99 ) ,
( 7 , 103 , 3 , '2022-04-05' , 2 , 21.99 ) ,
( 8 , 101 , 2 , '2022-04-06' , 1 , 18.99 ) ,
( 9 , 104 , 1 , '2022-04-07' , 2 , 9.99 ) ,
( 10 , 102 , 3 , '2022-04-07' , 3 , 14.99 ) ;
Ово би требало да креира следећу табелу:
СКЛ случај са клаузулом Сум и Гроуп Би
Да бисмо добили укупну продају за сваког купца који су груписани према ИД-у и израчунали попуст за купце који су дали више од две поруџбине, можемо да користимо исказ ЦАСЕ у вези са клаузулом СУМ и ГРОУП БИ као што је приказано у наставку:
изаберите ордерс.цустомер_ид, сум ( наруџбине.количина * наруџбине.цена * ( случај када се рачуна ( * ) > 2 онда 0.9 друго 1 крај ) ) као тотал_салес фром ордерс;
У датом примеру користимо СКЛ ЦАСЕ наредбу да проверимо да ли је купац дао више од две поруџбине.
Ако је купац дао више од две поруџбине, множимо тотал_салес са 0,9 чиме се примењује попуст од 10%.
Закључак
Разговарали смо о томе како можемо да користимо СКЛ наредбу ЦАСЕ са клаузулом СУМ() и ГРОУП БИ.