Table Function Overview
This quick overview is intended to give you a feel for the capabilities of the table functions. Greater detail on all aspects of these functions is provided throughout the rest of this chapter.
Assume that a company-wide telephone system automatically collects data on various aspects of a company’s telephone calls. The system collects the date and time of each call, the caller’s initials, caller’s extension number, area code of call, phone number of call, call duration, and cost. This information is collected and stored in a data file.
After you read this data into PV‑WAVE, you can use the BUILD_TABLE function to create a table. Once the table is created, you can use QUERY_TABLE to subset the data in various ways.
Here are some typical table queries using the QUERY_TABLE function. Assume that the name of the table (which is specified when the table is created) is phone_data. The names of the table’s columns are just as they appear below. Don’t worry now about the details of how the functions work, similar queries are explained in detail later in this chapter.
 
DATE
TIME
DUR
INIT
EXT
COST
AREA
NUMBER
901002
093200
21.40
TAC
311
5.78
215
2155554242
901002
094700
1.05
BWD
358
0.0
303
5553869
901002
094700
17.44
EBH
320
4.71
214
2145559893
901002
094800
16.23
TDW
289
0.0
303
5555836
901002
094800
1.31
RLD
248
.35
617
6175551999
901003
091500
2.53
DLH
332
.68
614
6145555553
901003
091600
2.33
JAT
000
0.0
303
555344
901003
091600
.35
CCW
418
.27
303
5555190
901003
091600
1.53
SRB
379
.41
212
2125556618
901004
094700
.80
JAT
000
0.0
303
555320
901004
094900
1.93
SRB
379
.52
818
8185552880
901004
095000
3.77
DJC
331
1.02
512
5125551228
Create a subset of the table that only shows the date, duration, and extension of calls made.
tbl = QUERY_TABLE(phone_data, 'DATE, DUR, EXT')
Show all of the calls made on October 2, 1990.
tbl = QUERY_TABLE(phone_data, '* Where DATE = 901002')
Sort the table in descending order, by cost.
tbl = QUERY_TABLE(phone_data, '* Order By COST Desc')
Sort the table first in ascending order by date, then within each group of dates by cost in descending order.
tbl = QUERY_TABLE(phone_data, '* Order By DATE, COST Desc')
Show the total cost incurred from each telephone extension on October 3.
tbl = QUERY_TABLE(phone_data, $
'EXT, Sum(COST) Where DATE = 901003,' + 'Group By EXT')
 
note
The second parameter in a QUERY_TABLE call is one string. The plus sign (+) used above is the string concatenation operator. It is used because it is not legal otherwise to break a string onto multiple lines within a PV‑WAVE command.
For each extension, what was the average cost of out-of-state calls from October 3 to October 6?
tbl = QUERY_TABLE(phone_data, 'EXT, Avg(COST) ' + $
'Where (DATE >= 901003 AND DATE <= ' + $
'901006) AND (AREA <> 303), Group By ' + 'EXT')
Show the data on all of the calls that cost less than $5.00.
tbl = QUERY_TABLE(phone_data, '* Where COST < 5.0')
Show the calls made by the caller with initials TAC.
tbl = QUERY_TABLE(phone_data, '* Where INIT = "TAC"')
Show the extension, date, and total duration of all calls made from each extension on each date.
tbl = QUERY_TABLE(phone_data, $
'EXT, DATE, Sum(DUR) Group By EXT, DATE')