257.MODELLING FUNCTION HALL BUSINESS DATA IN INDIA WITH PROC SQL | PROC FREQ | PROC SUMMARY | PROC FORMAT | PROC EXPORT | PROC CHART

MODELLING FUNCTION HALL BUSINESS DATA IN INDIA WITH PROC SQL | PROC FREQ | PROC SUMMARY | PROC FORMAT | PROC EXPORT | PROC CHART

 /*Creating Different Types Of Function Halls in India*/ 

Create formats for readability 

proc format;

  value $ynfmt 'Y'='Yes' 'N'='No';

  value $halltype 'BAN'='Banquet' 

                  'AUD'='Auditorium' 

                 'LAWN'='Lawn'

                 'MARR'='Marriage Hall'

                 'COMM'='Community Hall';

run;


1) Create the main dataset of function halls 

option nocenter;

data function_halls;

    length Hall_ID 8 Name $50 City $20 State $20 HallType $5 

           Area_sqft 8 Price_per_day 8 Weekday_price 8 Weekend_price 8

           Capacity 8 Parking_slots 8 AC $1 Indoor_Outdoor $8

           Amenities $200 Owner $30 Contact $15 Booking_Policy $60

           Avg_Catering_Cost_per_person 8 Rating 8 Nearby_Landmark $40

           Availability $1;


    infile datalines dsd dlm=','; 


    input Hall_ID

          Name :$50.

          City :$20.

          State :$20.

          HallType :$5.

          Area_sqft

          Price_per_day

          Weekday_price

          Weekend_price

          Capacity

          Parking_slots

          AC :$1.

          Indoor_Outdoor :$8.

          Amenities :$200.

          Owner :$30.

          Contact :$15.

          Booking_Policy :$60.

          Avg_Catering_Cost_per_person

          Rating

          Nearby_Landmark :$40.;


    format Price_per_day comma10.2 

           Weekday_price comma10.2 

           Weekend_price comma10.2 

           Area_sqft comma8.

           Rating 4.1;


    if Capacity >= 300 and Rating >= 4 then Availability = 'Y'; 

    else Availability = 'N';

datalines;

1, The Grand Marigold, Hyderabad, Telangana, BAN, 6000, 150000, 120000, 180000, 500, 200, Y, Indoor, "Stage,Lighting,AC,Parking,Projector", Ramesh Kumar, 9848012345, "50% advance, refundable deposit", 800, 4.5, Necklace Road

2, Lotus Auditorium, Chennai, Tamil_Nadu, AUD, 4000, 90000, 80000, 110000, 350, 120, Y, Indoor, "PA System,Lighting,AC,Dressing Rooms", S. Meena, 9840012345, "Full payment on booking", 600, 4.2, Anna Salai

3, Green Meadows Lawn, Pune, Maharashtra, LAWN, 10000, 80000, 70000, 100000, 600, 300, N, Outdoor, "Garden,Outdoor Stage,Lighting,Parking", Priya Desai, 9822012345, "Tentative booking 10% advance", 700, 4.0, Near Pune Airport

4, Royal Pavilion, Jaipur, Rajasthan, MARR, 5000, 120000, 100000, 140000, 450, 150, Y, Indoor, "Banquet Hall,AC,Stage,Decor", Rajesh Singh, 9829012345, "Non-refundable deposit 30%", 900, 4.6, Hawa Mahal

5, Community Centre Hall A, Kolkata, West_Bengal, COMM, 2000, 35000, 30000, 40000, 200, 50, Y, Indoor, "Stage,Sound System", Anjali Bose, 9830012345, "Hourly booking allowed", 300, 3.8, Park Street

6, Sunset Banquets, Bengaluru, Karnataka, BAN, 7000, 140000, 115000, 160000, 550, 220, Y, Indoor, "AC,Parking,Lighting,Stage", Karthik Rao, 9845012345, "50% advance", 850, 4.4, Electronic City

7, Riverfront Lawn, Kochi, Kerala, LAWN, 12000, 100000, 85000, 125000, 700, 400, N, Outdoor, "Sea view,Open kitchen,Parking", Maria Thomas, 9847012345, "Weather backup required", 650, 4.1, Marine Drive

8, Shree Marriage Palace, Ahmedabad, Gujarat, MARR, 4500, 110000, 95000, 125000, 420, 140, Y, Indoor, "Stage,AC,Bridal Room", Vikram Patel, 9427012345, "Advance 40%", 750, 4.3, Gandhi Road

9, Elite Community Hall, Lucknow, Uttar_Pradesh, COMM, 2500, 45000, 38000, 50000, 230, 60, Y, Indoor, "Sound,Seating", Sameer Khan, 9456012345, "Refundable security deposit", 320, 3.9, Hazratganj

10, City Convention Centre, Delhi, Delhi, AUD, 9000, 230000, 200000, 260000, 900, 400, Y, Indoor, "Projector,Stage,AC,Simultaneous Interpretation", Aparna Gupta, 9810012345, "Corporate rates apply", 1200, 4.7, Connaught Place

11, Heritage Banquet, Varanasi, Uttar_Pradesh, BAN, 5500, 85000, 70000, 100000, 300, 100, Y, Indoor, "Decor,AC,Parking", Anand Verma, 9457012345, "Festival peak rates", 450, 4.0, Dashashwamedh Ghat

12, Palace Lawn, Udaipur, Rajasthan, LAWN, 15000, 200000, 170000, 230000, 1000, 500, N, Outdoor, "Lake view,Lighting,Stage", Meera Singh, 9823012345, "Peak season surcharge", 1200, 4.8, Lake Pichola

13, Metro Community Hall, Mumbai, Maharashtra, COMM, 3000, 70000, 60000, 80000, 280, 80, Y, Indoor, "Sound,Seating,AC", Raj Malhotra, 9930012345, "2 hour minimum", 500, 4.1, Bandra

14, Horizon Auditorium, Bhopal, Madhya_Pradesh, AUD, 4500, 60000, 50000, 70000, 320, 90, Y, Indoor, "AC,Projector,Sound", Sunita Sharma, 9750012345, "Weekday discounts", 450, 4.0, Upper Lake

15, Gardenia Banquet, Indore, Madhya_Pradesh, BAN, 6500, 95000, 80000, 110000, 480, 180, Y, Indoor, "AC,Parking,Dressing Rooms", Mohan Lal, 9890012345, "50% advance", 600, 4.2, Sarafa Bazaar

;

run;

proc print data=function_halls;

run;

Output:

ObsHall_IDNameCityStateHallTypeArea_sqftPrice_per_dayWeekday_priceWeekend_priceCapacityParking_slotsACIndoor_OutdoorAmenitiesOwnerContactBooking_PolicyAvg_Catering_Cost_per_personRatingNearby_LandmarkAvailability
11The Grand MarigoldHyderabadTelanganaBAN6,000150,000.00120,000.00180,000.00500200YIndoorStage,Lighting,AC,Parking,ProjectorRamesh Kumar984801234550% advance, refundable deposit8004.5Necklace RoadY
22Lotus AuditoriumChennaiTamil_NaduAUD4,00090,000.0080,000.00110,000.00350120YIndoorPA System,Lighting,AC,Dressing RoomsS. Meena9840012345Full payment on booking6004.2Anna SalaiY
33Green Meadows LawnPuneMaharashtraLAWN10,00080,000.0070,000.00100,000.00600300NOutdoorGarden,Outdoor Stage,Lighting,ParkingPriya Desai9822012345Tentative booking 10% advance7004.0Near Pune AirportY
44Royal PavilionJaipurRajasthanMARR5,000120,000.00100,000.00140,000.00450150YIndoorBanquet Hall,AC,Stage,DecorRajesh Singh9829012345Non-refundable deposit 30%9004.6Hawa MahalY
55Community Centre Hall AKolkataWest_BengalCOMM2,00035,000.0030,000.0040,000.0020050YIndoorStage,Sound SystemAnjali Bose9830012345Hourly booking allowed3003.8Park StreetN
66Sunset BanquetsBengaluruKarnatakaBAN7,000140,000.00115,000.00160,000.00550220YIndoorAC,Parking,Lighting,StageKarthik Rao984501234550% advance8504.4Electronic CityY
77Riverfront LawnKochiKeralaLAWN12,000100,000.0085,000.00125,000.00700400NOutdoorSea view,Open kitchen,ParkingMaria Thomas9847012345Weather backup required6504.1Marine DriveY
88Shree Marriage PalaceAhmedabadGujaratMARR4,500110,000.0095,000.00125,000.00420140YIndoorStage,AC,Bridal RoomVikram Patel9427012345Advance 40%7504.3Gandhi RoadY
99Elite Community HallLucknowUttar_PradeshCOMM2,50045,000.0038,000.0050,000.0023060YIndoorSound,SeatingSameer Khan9456012345Refundable security deposit3203.9HazratganjN
1010City Convention CentreDelhiDelhiAUD9,000230,000.00200,000.00260,000.00900400YIndoorProjector,Stage,AC,Simultaneous InterpretationAparna Gupta9810012345Corporate rates apply12004.7Connaught PlaceY
1111Heritage BanquetVaranasiUttar_PradeshBAN5,50085,000.0070,000.00100,000.00300100YIndoorDecor,AC,ParkingAnand Verma9457012345Festival peak rates4504.0Dashashwamedh GhatY
1212Palace LawnUdaipurRajasthanLAWN15,000200,000.00170,000.00230,000.001000500NOutdoorLake view,Lighting,StageMeera Singh9823012345Peak season surcharge12004.8Lake PicholaY
1313Metro Community HallMumbaiMaharashtraCOMM3,00070,000.0060,000.0080,000.0028080YIndoorSound,Seating,ACRaj Malhotra99300123452 hour minimum5004.1BandraN
1414Horizon AuditoriumBhopalMadhya_PradeshAUD4,50060,000.0050,000.0070,000.0032090YIndoorAC,Projector,SoundSunita Sharma9750012345Weekday discounts4504.0Upper LakeY
1515Gardenia BanquetIndoreMadhya_PradeshBAN6,50095,000.0080,000.00110,000.00480180YIndoorAC,Parking,Dressing RoomsMohan Lal989001234550% advance6004.2Sarafa BazaarY


2) PROC CONTENTS -  purpose: show dataset structure and variable attributes 

proc contents data=function_halls varnum;

run;

Output:

The CONTENTS Procedure

Data Set NameWORK.FUNCTION_HALLSObservations15
Member TypeDATAVariables21
EngineV9Indexes0
Created08/10/2025 18:42:42Observation Length528
Last Modified08/10/2025 18:42:42Deleted Observations0
Protection CompressedNO
Data Set Type SortedNO
Label   
Data RepresentationSOLARIS_X86_64, LINUX_X86_64, ALPHA_TRU64, LINUX_IA64  
Encodingutf-8 Unicode (UTF-8)  
Engine/Host Dependent Information
Data Set Page Size131072
Number of Data Set Pages1
First Data Page1
Max Obs per Page248
Obs in First Data Page15
Number of Data Set Repairs0
Filename/saswork/SAS_work97F10000B31F_odaws02-apse1-2.oda.sas.com/SAS_workCF1B0000B31F_odaws02-apse1-2.oda.sas.com/function_halls.sas7bdat
Release Created9.0401M8
Host CreatedLinux
Inode Number134331195
Access Permissionrw-r--r--
Owner Nameu63247146
File Size256KB
File Size (bytes)262144
Variables in Creation Order
#VariableTypeLenFormat
1Hall_IDNum8 
2NameChar50 
3CityChar20 
4StateChar20 
5HallTypeChar5 
6Area_sqftNum8COMMA8.
7Price_per_dayNum8COMMA10.2
8Weekday_priceNum8COMMA10.2
9Weekend_priceNum8COMMA10.2
10CapacityNum8 
11Parking_slotsNum8 
12ACChar1 
13Indoor_OutdoorChar8 
14AmenitiesChar200 
15OwnerChar30 
16ContactChar15 
17Booking_PolicyChar60 
18Avg_Catering_Cost_per_personNum8 
19RatingNum84.1
20Nearby_LandmarkChar40 
21AvailabilityChar1 

3) PROC PRINT - small sample 

proc print data=function_halls (obs=8);

  title "Sample of Function Halls (first 8 obs)";

  var Hall_ID Name City State HallType Capacity Area_sqft Price_per_day Rating Availability;

run;

Output:

Sample of Function Halls (first 8 obs)

ObsHall_IDNameCityStateHallTypeCapacityArea_sqftPrice_per_dayRatingAvailability
11The Grand MarigoldHyderabadTelanganaBAN5006,000150,000.004.5Y
22Lotus AuditoriumChennaiTamil_NaduAUD3504,00090,000.004.2Y
33Green Meadows LawnPuneMaharashtraLAWN60010,00080,000.004.0Y
44Royal PavilionJaipurRajasthanMARR4505,000120,000.004.6Y
55Community Centre Hall AKolkataWest_BengalCOMM2002,00035,000.003.8N
66Sunset BanquetsBengaluruKarnatakaBAN5507,000140,000.004.4Y
77Riverfront LawnKochiKeralaLAWN70012,000100,000.004.1Y
88Shree Marriage PalaceAhmedabadGujaratMARR4204,500110,000.004.3Y

4) PROC FREQ - purpose: frequency distributions 

proc freq data=function_halls;

  tables HallType City State Indoor_Outdoor Availability;

run;

Output:

The FREQ Procedure

HallTypeFrequencyPercentCumulative
Frequency
Cumulative
Percent
AUD320.00320.00
BAN426.67746.67
COMM320.001066.67
LAWN320.001386.67
MARR213.3315100.00
CityFrequencyPercentCumulative
Frequency
Cumulative
Percent
Ahmedabad16.6716.67
Bengaluru16.67213.33
Bhopal16.67320.00
Chennai16.67426.67
Delhi16.67533.33
Hyderabad16.67640.00
Indore16.67746.67
Jaipur16.67853.33
Kochi16.67960.00
Kolkata16.671066.67
Lucknow16.671173.33
Mumbai16.671280.00
Pune16.671386.67
Udaipur16.671493.33
Varanasi16.6715100.00
StateFrequencyPercentCumulative
Frequency
Cumulative
Percent
Delhi16.6716.67
Gujarat16.67213.33
Karnataka16.67320.00
Kerala16.67426.67
Madhya_Pradesh213.33640.00
Maharashtra213.33853.33
Rajasthan213.331066.67
Tamil_Nadu16.671173.33
Telangana16.671280.00
Uttar_Pradesh213.331493.33
West_Bengal16.6715100.00
Indoor_OutdoorFrequencyPercentCumulative
Frequency
Cumulative
Percent
Indoor1280.001280.00
Outdoor320.0015100.00
AvailabilityFrequencyPercentCumulative
Frequency
Cumulative
Percent
N320.00320.00
Y1280.0015100.00

5) PROC MEANS - purpose: numeric summaries (mean, min, max) 

proc means data=function_halls n mean median min max stddec maxdec=2;

  var Price_per_day Weekday_price Weekend_price Capacity Area_sqft Rating Avg_Catering_Cost_per_person;

run;

Output:

The MEANS Procedure

VariableNMeanMedianMinimumMaximumStd Dev
Price_per_day
Weekday_price
Weekend_price
Capacity
Area_sqft
Rating
Avg_Catering_Cost_per_person
15
15
15
15
15
15
15
107333.33
90866.67
125333.33
485.33
6433.33
4.24
684.67
95000.00
80000.00
110000.00
450.00
5500.00
4.20
650.00
35000.00
30000.00
40000.00
200.00
2000.00
3.80
300.00
230000.00
200000.00
260000.00
1000.00
15000.00
4.80
1200.00
54243.72
46266.10
61715.55
235.25
3658.97
0.30
275.60

6) PROC SQL - purpose: aggregated summaries and views (SQL style) 

Create aggregated summary by State 

proc sql;

  create table state_summary as

  select State,

         count(*) as Num_Halls,

         avg(Price_per_day) format=comma10.2 as Avg_Price,

         avg(Rating) format=4.2 as Avg_Rating,

         sum(Capacity) as Total_Capacity

  from function_halls

  group by State

  order by Avg_Price desc;

quit;

proc print data=state_summary;

run;

Output:

ObsStateNum_HallsAvg_PriceAvg_RatingTotal_Capacity
1Delhi1230,000.004.70900
2Rajasthan2160,000.004.701450
3Telangana1150,000.004.50500
4Karnataka1140,000.004.40550
5Gujarat1110,000.004.30420
6Kerala1100,000.004.10700
7Tamil_Nadu190,000.004.20350
8Madhya_Pradesh277,500.004.10800
9Maharashtra275,000.004.05880
10Uttar_Pradesh265,000.003.95530
11West_Bengal135,000.003.80200


7) PROC SORT - purpose: sort dataset for reporting 

proc sort data=function_halls out=fh_sorted;

  by descending Price_per_day;

run;

proc print data=fh_sorted;

run;

Output:

ObsHall_IDNameCityStateHallTypeArea_sqftPrice_per_dayWeekday_priceWeekend_priceCapacityParking_slotsACIndoor_OutdoorAmenitiesOwnerContactBooking_PolicyAvg_Catering_Cost_per_personRatingNearby_LandmarkAvailability
110City Convention CentreDelhiDelhiAUD9,000230,000.00200,000.00260,000.00900400YIndoorProjector,Stage,AC,Simultaneous InterpretationAparna Gupta9810012345Corporate rates apply12004.7Connaught PlaceY
212Palace LawnUdaipurRajasthanLAWN15,000200,000.00170,000.00230,000.001000500NOutdoorLake view,Lighting,StageMeera Singh9823012345Peak season surcharge12004.8Lake PicholaY
31The Grand MarigoldHyderabadTelanganaBAN6,000150,000.00120,000.00180,000.00500200YIndoorStage,Lighting,AC,Parking,ProjectorRamesh Kumar984801234550% advance, refundable deposit8004.5Necklace RoadY
46Sunset BanquetsBengaluruKarnatakaBAN7,000140,000.00115,000.00160,000.00550220YIndoorAC,Parking,Lighting,StageKarthik Rao984501234550% advance8504.4Electronic CityY
54Royal PavilionJaipurRajasthanMARR5,000120,000.00100,000.00140,000.00450150YIndoorBanquet Hall,AC,Stage,DecorRajesh Singh9829012345Non-refundable deposit 30%9004.6Hawa MahalY
68Shree Marriage PalaceAhmedabadGujaratMARR4,500110,000.0095,000.00125,000.00420140YIndoorStage,AC,Bridal RoomVikram Patel9427012345Advance 40%7504.3Gandhi RoadY
77Riverfront LawnKochiKeralaLAWN12,000100,000.0085,000.00125,000.00700400NOutdoorSea view,Open kitchen,ParkingMaria Thomas9847012345Weather backup required6504.1Marine DriveY
815Gardenia BanquetIndoreMadhya_PradeshBAN6,50095,000.0080,000.00110,000.00480180YIndoorAC,Parking,Dressing RoomsMohan Lal989001234550% advance6004.2Sarafa BazaarY
92Lotus AuditoriumChennaiTamil_NaduAUD4,00090,000.0080,000.00110,000.00350120YIndoorPA System,Lighting,AC,Dressing RoomsS. Meena9840012345Full payment on booking6004.2Anna SalaiY
1011Heritage BanquetVaranasiUttar_PradeshBAN5,50085,000.0070,000.00100,000.00300100YIndoorDecor,AC,ParkingAnand Verma9457012345Festival peak rates4504.0Dashashwamedh GhatY
113Green Meadows LawnPuneMaharashtraLAWN10,00080,000.0070,000.00100,000.00600300NOutdoorGarden,Outdoor Stage,Lighting,ParkingPriya Desai9822012345Tentative booking 10% advance7004.0Near Pune AirportY
1213Metro Community HallMumbaiMaharashtraCOMM3,00070,000.0060,000.0080,000.0028080YIndoorSound,Seating,ACRaj Malhotra99300123452 hour minimum5004.1BandraN
1314Horizon AuditoriumBhopalMadhya_PradeshAUD4,50060,000.0050,000.0070,000.0032090YIndoorAC,Projector,SoundSunita Sharma9750012345Weekday discounts4504.0Upper LakeY
149Elite Community HallLucknowUttar_PradeshCOMM2,50045,000.0038,000.0050,000.0023060YIndoorSound,SeatingSameer Khan9456012345Refundable security deposit3203.9HazratganjN
155Community Centre Hall AKolkataWest_BengalCOMM2,00035,000.0030,000.0040,000.0020050YIndoorStage,Sound SystemAnjali Bose9830012345Hourly booking allowed3003.8Park StreetN


8) PROC REPORT - purpose: create formatted report table 

proc report data=state_summary nowd;

  columns State Num_Halls Avg_Price Avg_Rating Total_Capacity;

  define State / group;

  define Avg_Price / analysis format=comma10.2;

  title "Function Halls - Summary by State";

run;

Output:

Function Halls - Summary by State

StateNum_HallsAvg_PriceAvg_RatingTotal_Capacity
Delhi1230,000.004.70900
Gujarat1110,000.004.30420
Karnataka1140,000.004.40550
Kerala1100,000.004.10700
Madhya_Pradesh277,500.004.10800
Maharashtra275,000.004.05880
Rajasthan2160,000.004.701450
Tamil_Nadu190,000.004.20350
Telangana1150,000.004.50500
Uttar_Pradesh265,000.003.95530
West_Bengal135,000.003.80200

9) PROC TRANSPOSE - purpose: pivot HallType counts to columns (wide) 

proc freq data=function_halls noprint;

  tables State*HallType / out=state_type_counts;

run;


proc sort data=state_type_counts; by State HallType; run;


proc transpose data=state_type_counts out=state_type_wide prefix=Type_;

  by State;

  id HallType;

  var Count;

run;

proc print data=state_type_wide;

run;

Output:

ObsState_NAME__LABEL_Type_AUDType_MARRType_BANType_LAWNType_COMM
1DelhiCOUNTFrequency Count1....
2GujaratCOUNTFrequency Count.1...
3KarnatakaCOUNTFrequency Count..1..
4KeralaCOUNTFrequency Count...1.
5Madhya_PradeshCOUNTFrequency Count1.1..
6MaharashtraCOUNTFrequency Count...11
7RajasthanCOUNTFrequency Count.1.1.
8Tamil_NaduCOUNTFrequency Count1....
9TelanganaCOUNTFrequency Count..1..
10Uttar_PradeshCOUNTFrequency Count..1.1
11West_BengalCOUNTFrequency Count....1


10) Create an Owners dataset and demonstrate a join using PROC SQL - purpose: joins 

data owners;

  infile datalines dlm=',' dsd;

  length Owner $30 Contact $15 Hall_ID 8;

  input Owner Contact Hall_ID;

datalines;

Ramesh Kumar,9848012345,1

S. Meena,9840012345,2

Priya Desai,9822012345,3

Rajesh Singh,9829012345,4

Anjali Bose,9830012345,5

Karthik Rao,9845012345,6

Maria Thomas,9847012345,7

Vikram Patel,9427012345,8

Sameer Khan,9456012345,9

Aparna Gupta,9810012345,10

;

run;

proc print;run;

Output:

ObsOwnerContactHall_ID
1Ramesh Kumar98480123451
2S. Meena98400123452
3Priya Desai98220123453
4Rajesh Singh98290123454
5Anjali Bose98300123455
6Karthik Rao98450123456
7Maria Thomas98470123457
8Vikram Patel94270123458
9Sameer Khan94560123459
10Aparna Gupta981001234510


proc sql;

  create table halls_with_owners as

  select a.Hall_ID, a.Name, a.City, a.State, a.Price_per_day, b.Owner, b.Contact

  from function_halls as a left join owners as b

  on a.Hall_ID = b.Hall_ID;

quit;

proc print data=halls_with_owners;

run;

Output:

ObsHall_IDNameCityStatePrice_per_dayOwnerContact
11The Grand MarigoldHyderabadTelangana150,000.00Ramesh Kumar9848012345
22Lotus AuditoriumChennaiTamil_Nadu90,000.00S. Meena9840012345
33Green Meadows LawnPuneMaharashtra80,000.00Priya Desai9822012345
44Royal PavilionJaipurRajasthan120,000.00Rajesh Singh9829012345
55Community Centre Hall AKolkataWest_Bengal35,000.00Anjali Bose9830012345
66Sunset BanquetsBengaluruKarnataka140,000.00Karthik Rao9845012345
77Riverfront LawnKochiKerala100,000.00Maria Thomas9847012345
88Shree Marriage PalaceAhmedabadGujarat110,000.00Vikram Patel9427012345
99Elite Community HallLucknowUttar_Pradesh45,000.00Sameer Khan9456012345
1010City Convention CentreDelhiDelhi230,000.00Aparna Gupta9810012345
1111Heritage BanquetVaranasiUttar_Pradesh85,000.00  
1212Palace LawnUdaipurRajasthan200,000.00  
1313Metro Community HallMumbaiMaharashtra70,000.00  
1414Horizon AuditoriumBhopalMadhya_Pradesh60,000.00  
1515Gardenia BanquetIndoreMadhya_Pradesh95,000.00  


11) Macro examples 

Macro purpose: city-specific report generator 

%macro CityReport(city=);

  %put NOTE: Generating report for &city..;

  proc sql;

    create table city_&city._list as

    select Hall_ID, Name, HallType, Capacity, Price_per_day, Rating, Availability

    from function_halls

    where upcase(City) = upcase("&city.")

    order by Price_per_day desc;

  quit;


  proc print data=city_&city._list noobs;

    title "Function Halls in &city.";

  run;

%mend CityReport;


Macro purpose: adjust prices globally by percentage (e.g., percent=10 increases prices by 10%) 

%macro AdjustPrice(percent=0);

  %let factor = %sysevalf(1 + &percent./100);

  data function_halls_price_adj;

    set function_halls;

    Price_per_day = round(Price_per_day * &factor, 1);

    Weekday_price = round(Weekday_price * &factor, 1);

    Weekend_price = round(Weekend_price * &factor, 1);

  run;

  proc means data=function_halls_price_adj mean min max;

    var Price_per_day Weekday_price Weekend_price;

    title "Prices adjusted by &percent.%";

  run;

%mend AdjustPrice;


%CityReport(city=Hyderabad);

Output:

Function Halls in Hyderabad

Hall_IDNameHallTypeCapacityPrice_per_dayRatingAvailability
1The Grand MarigoldBAN500150,000.004.5Y

%CityReport(city=Mumbai);

Output:

Function Halls in Mumbai

Hall_IDNameHallTypeCapacityPrice_per_dayRatingAvailability
13Metro Community HallCOMM28070,000.004.1N

%AdjustPrice(percent=5)

Output:

Prices adjusted by 5%

The MEANS Procedure

VariableMeanMinimumMaximum
Price_per_day
Weekday_price
Weekend_price
112700.00
95410.00
131600.00
36750.00
31500.00
42000.00
241500.00
210000.00
273000.00



To Visit My Previous Proc  Means And Nway Option:Click Here
To Visit My Previous Proc Means And CharType Option:Click Here
To Visit My Previous SAS Functions:Click Here
To Visit My Previous Length Statement Using In Many Ways:Click Here








--->PLEASE FOLLOW OUR BLOG FOR MORE INFORMATION.
--->PLEASE DO COMMENTS AND SHARE OUR BLOG.

PLEASE FOLLOW OUR TELEGRAM CHANNEL CLICK HERE

PLEASE FOLLOW OUR FACEBOOK PAGE  CLICK HERE

PLEASE FOLLOW OUR INSTAGRAM PAGE CLICK HERE

Comments