Week5 - Views / Design | E-BOX DBMS

Week5 - Views / Design | E-BOX DBMS

Week5 - Views / Design

The questions can come in any order, so make sure you are selecting right option for all questions.

1. Create a view named 'building_details' to select all the details present in the building table.

    create view building_details as
    select *
    from building;

2. Create a view named "building_owners" to select all the owner_name present in the building table.

    create view building_owners as
    select owner_name
    from building;

3. Create a view named 'owner_details' to select the owner_name and contact_number of the buildings with the length of owner_name greater than 15.

    create view owner_details as
    select owner_name,contact_number
    from building
    where length(owner_name)>15;

4. Create a view named 'bill_details' to select all the details of the bills which has completed payment with no fine amount.

    create view bill_details as
    select *
    from bill
    where fine_amount is null

5. Create a view named 'electricity_reading_details' to select all the details of the electricity_reading whose total_units per day is greater than 500 units.

    create view electricity_reading_details as
    select *
    from electricity_reading
    where total_units > 500;

6. Create a view named 'meter_details' to select all the details of the buildings whose meter_number starts with 'SG' and ends with '2'.

    create view meter_details as
    select * 
    from building 
    where id in (
      select building_id 
      from meter 
      where meter_number 
      like 'SG%2')

7. Create a view named "home_buildings" to select the name of the building_type whose electricity connection type is ‘Home’.

    create view home_buildings as
    select name 
    from building_type 
    where connection_type_id in (
      select id
      from electricity_connection_type
      where connection_name = 'Home')

8. Create a view named "all_payable_amount" to select the meter_number from meter table and its corresponding payable_amount from the bill table.

    create view all_payable_amount as
    select m.meter_number, b.payable_amount 
    from meter m
    inner join bill b on m.id=b.meter_id

9. Create a view named "daily_readings" to display the daily hourly readings from h1 to h24 for each meter with meter number displayed.

    create view daily_readings as
    select r.h1,r.h2,r.h3,r.h4,r.h5,r.h6,r.h7,r.h8,r.h9,r.h10,r.h11,r.h12,r.h13,r.h14,r.h15,r.h16,r.h17,r.h18,r.h19,r.h20,r.h21,r.h22,r.h23,r.h24,m.meter_number
    from meter m,electricity_reading r
    where m.id=r.meter_id;

10. Create a view named "total_unit_spent_by_commercial" to display the sum of the total_units spent by the commercial connection type buildings.

    create view total_unit_spent_by_commercial as
    select sum(total_units) as sum_of_total_units
    from bill
    where meter_id in (
      select id
      from meter
      where building_id in (
        select id
        from building
        where building_type_id in (
          select id
          from building_type
          where connection_type_id = (
            select id
            from electricity_connection_type
            where connection_name = 'Commercial')
        )
      )
    )