Thursday, September 29, 2011

News Paper Vendor program using PL/SQL


Objective

 Every morning a newspaper vendor newspapers in wholesale from a distributor for 60 paise. He sells them in retail for 75 paise. At the end of the day the unsold papers are returned to the distributor for 30 paise rebate per paper. Write a PL/SQL code block to prepare a report for the newspaper vendor in the following format with 5 weeks data.
Week     Bought      Sold        Return        Profit        Loss
       1                   60                  30         
      2                   75                  40
        .                     .                      .
program:

SQL>Create table vendor (week number(2) primary key, bought number(2), sold number(2));
Table created.
SQL>inser into vendor values(1,100,75);
1 row created.
SQL>insert into vendor values(2,70,60);
1 row created.
SQL>insert into vendor values(3,45,20);
1 row created.
SQL>insert into vendor values(4,60,55);
1 row created.
SQL>insert into vendor values(5,50,50);
1 row created.
SQL>ALTER TABLE vendor add(return number(10), profit number(6,2), loss number(6,2));
Table altered.
SQL> ed news;
        declare

               v-pro vendor .profit %type;
               v-lo vendor .Loss %type;
                   v-ret vendor .Return % type;
               pr number (10);
               cursor  C  is select  *  from vendor;
               begin
               for i in C loop
               v-ret:=i.bought-i.Sold;
               if (v-ret=o)then
                   v-pro:=(i.sold*.75)-(i.bought*.60);
                   v-lo:=0;
               els if  (v-ret>0)then
                   v-pro:=(i.sold *.75)+(v-ret *.30)-(i.bought * .60);
               if      (v-pro   < 0) then
                   v-lo : = -1 * v-pro;
                   v-pro : = 0;
               else
                   v- lo : =0;
               end if ;
               end if ;                 
               UPDATE  vendor set return = v-re, profit = v-pro ,
               loss = v-lo  where  week = i.week ;
               end  loop;
               end ;
               SQL  >  @news ;
               20 /
               PL/SQL  procedure successfully completed .
               SQL > Select   *  from vendor ;
               week     Bought    sold    Return    profit       Loss
               1            100        75         25          3.75         0                
               2             70         60         10            6             0
               3             45         20         25            0            4.5
               4             60         55           5           6.75         0 
               5             50         50           0           7.5           0

No comments:

Post a Comment