SELECT with OPTIMIZE FOR Hints
1. Sales Report with OPTIMIZE FOR a narrow date range (Using Input Values)
SQL Server Query 1
-- Advanced Query: Sales Report with OPTIMIZE FOR a narrow date range
DECLARE @ReportStartDate DATETIME;
DECLARE @ReportEndDate DATETIME;
SET @ReportStartDate = '1997-08-01';
SET @ReportEndDate = '1997-08-07'; -- A 7-day window
SELECT
O.OrderID,
O.OrderDate,
C.CompanyName,
E.FirstName + ' ' + E.LastName AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
JOIN Customers AS C ON O.CustomerID = C.CustomerID
JOIN Employees AS E ON O.EmployeeID = E.EmployeeID
JOIN [Order Details] AS OD ON O.OrderID = OD.OrderID
WHERE O.OrderDate >= @ReportStartDate AND O.OrderDate <= @ReportEndDate
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (
OPTIMIZE FOR (
@ReportStartDate = '1997-08-01', -- Optimize for a specific 7-day range
@ReportEndDate = '1997-08-07'
)
);
Create SQL query with SqlQueryBuilder 1
var (sql1, parameters1) = new SqlQueryBuilder()
.Select()
.Columns("O.OrderID","O.OrderDate","C.CompanyName")
.Column(new CONCAT(new Column("E.FirstName"), " ", new Column("E.LastName")), "EmployeeName")
.Column(new SUM(new ColumnArithmatic("OD.Quantity").MULTIPLY("OD.UnitPrice")
.MULTIPLY().StartBracket(1).SUBTRACT("OD.Discount").EndBracket()), "OrderTotalValue")
.From("Orders", "O")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("Customers", "C")
.On(new Column("O.CustomerID").Equale(new Column("C.CustomerID"))),
new INNERJOIN().TableName("Employees", "E")
.On(new Column("O.EmployeeID").Equale(new Column("E.EmployeeID"))),
new INNERJOIN().TableName("[Order Details]", "OD")
.On(new Column("O.OrderID").Equale(new Column("OD.OrderID")))
})
.Where(new Where(new Column("O.OrderDate").GreaterThanOrEqualeTo("1997-08-01"))
.AND(new Column("O.OrderDate").LessThanOrEqualeTo("1997-08-07")))
.GroupBy(new GroupBy("O.OrderID","O.OrderDate","C.CompanyName","E.FirstName","E.LastName"))
.OrderBy(new OrderBy().SetColumnDescending("O.OrderDate"))
.Option(new List<IOption>()
{
new OPTIMIZE_FOR("1997-08-01","1997-08-07")
})
.Build();
Query build by SqlQueryBuilder 1
SELECT O.OrderID,
O.OrderDate,
C.CompanyName,
CONCAT(E.FirstName, @pMAIN_2507192011455124090, E.LastName) AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (@pMAIN_2507192011455124091 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
INNER JOIN
Customers AS C
ON O.CustomerID = C.CustomerID
INNER JOIN
Employees AS E
ON O.EmployeeID = E.EmployeeID
INNER JOIN
[Order Details] AS OD
ON O.OrderID = OD.OrderID
WHERE O.OrderDate >= @pMAIN_2507192011455124092
AND O.OrderDate <= @pMAIN_2507192011455124093
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (OPTIMIZE FOR (@pMAIN_2507192011455124092 = '1997-08-01', @pMAIN_2507192011455124093 = '1997-08-07'));
Parameters (If used)
Name |
Value |
@pMAIN_2507192011455124090 |
|
@pMAIN_2507192011455124091 |
1 |
@pMAIN_2507192011455124092 |
1997-08-01 |
@pMAIN_2507192011455124093 |
1997-08-07 |
Query Results 1:
|
OrderID |
OrderDate |
CompanyName |
EmployeeName |
OrderTotalValue |
1 |
10623
|
8/7/1997 12:00:00 AM
|
Frankenversand
|
Laura Callahan
|
1336.94999694824
|
2 |
10624
|
8/7/1997 12:00:00 AM
|
The Cracker Box
|
Margaret Peacock
|
1393.23999023438
|
3 |
10622
|
8/6/1997 12:00:00 AM
|
Ricardo Adocicados
|
Margaret Peacock
|
560
|
4 |
10620
|
8/5/1997 12:00:00 AM
|
Laughing Bacchus Wine Cellars
|
Andrew Fuller
|
57.5
|
5 |
10621
|
8/5/1997 12:00:00 AM
|
Island Trading
|
Margaret Peacock
|
758.5
|
6 |
10619
|
8/4/1997 12:00:00 AM
|
Mère Paillarde
|
Janet Leverling
|
1260
|
7 |
10618
|
8/1/1997 12:00:00 AM
|
Mère Paillarde
|
Nancy Davolio
|
2697.5
|
2. Sales Report with OPTIMIZE FOR a narrow date range (Using Input Sequence)
SQL Server Query 2
-- Advanced Query: Sales Report with OPTIMIZE FOR a narrow date range
DECLARE @ReportStartDate DATETIME;
DECLARE @ReportEndDate DATETIME;
SET @ReportStartDate = '1997-08-01';
SET @ReportEndDate = '1997-08-07'; -- A 7-day window
SELECT
O.OrderID,
O.OrderDate,
C.CompanyName,
E.FirstName + ' ' + E.LastName AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
JOIN Customers AS C ON O.CustomerID = C.CustomerID
JOIN Employees AS E ON O.EmployeeID = E.EmployeeID
JOIN [Order Details] AS OD ON O.OrderID = OD.OrderID
WHERE O.OrderDate >= @ReportStartDate AND O.OrderDate <= @ReportEndDate
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (
OPTIMIZE FOR (
@ReportStartDate = '1997-08-01', -- Optimize for a specific 7-day range
@ReportEndDate = '1997-08-07'
)
);
Create SQL query with SqlQueryBuilder 2
var (sql2, parameters2) = new SqlQueryBuilder()
.Select()
.Columns("O.OrderID","O.OrderDate","C.CompanyName")
.Column(new CONCAT(new Column("E.FirstName"), " ", new Column("E.LastName")), "EmployeeName")
.Column(new SUM(new ColumnArithmatic("OD.Quantity").MULTIPLY("OD.UnitPrice")
.MULTIPLY().StartBracket(1).SUBTRACT("OD.Discount").EndBracket()), "OrderTotalValue")
.From("Orders", "O")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("Customers", "C")
.On(new Column("O.CustomerID").Equale(new Column("C.CustomerID"))),
new INNERJOIN().TableName("Employees", "E")
.On(new Column("O.EmployeeID").Equale(new Column("E.EmployeeID"))),
new INNERJOIN().TableName("[Order Details]", "OD")
.On(new Column("O.OrderID").Equale(new Column("OD.OrderID")))
})
.Where(new Where(new Column("O.OrderDate").GreaterThanOrEqualeTo("1997-08-01"))
.AND(new Column("O.OrderDate").LessThanOrEqualeTo("1997-08-07")))
.GroupBy(new GroupBy("O.OrderID","O.OrderDate","C.CompanyName","E.FirstName","E.LastName"))
.OrderBy(new OrderBy().SetColumnDescending("O.OrderDate"))
.Option(new List<IOption>()
{
new OPTIMIZE_FOR(3, 4)
})
.Build();
Query build by SqlQueryBuilder 2
SELECT O.OrderID,
O.OrderDate,
C.CompanyName,
CONCAT(E.FirstName, @pMAIN_2507192011455395350, E.LastName) AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (@pMAIN_2507192011455395351 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
INNER JOIN
Customers AS C
ON O.CustomerID = C.CustomerID
INNER JOIN
Employees AS E
ON O.EmployeeID = E.EmployeeID
INNER JOIN
[Order Details] AS OD
ON O.OrderID = OD.OrderID
WHERE O.OrderDate >= @pMAIN_2507192011455395352
AND O.OrderDate <= @pMAIN_2507192011455395353
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (OPTIMIZE FOR (@pMAIN_2507192011455395352 = '1997-08-01', @pMAIN_2507192011455395353 = '1997-08-07'));
Parameters (If used)
Name |
Value |
@pMAIN_2507192011455395350 |
|
@pMAIN_2507192011455395351 |
1 |
@pMAIN_2507192011455395352 |
1997-08-01 |
@pMAIN_2507192011455395353 |
1997-08-07 |
Query Results 2:
|
OrderID |
OrderDate |
CompanyName |
EmployeeName |
OrderTotalValue |
1 |
10623
|
8/7/1997 12:00:00 AM
|
Frankenversand
|
Laura Callahan
|
1336.94999694824
|
2 |
10624
|
8/7/1997 12:00:00 AM
|
The Cracker Box
|
Margaret Peacock
|
1393.23999023438
|
3 |
10622
|
8/6/1997 12:00:00 AM
|
Ricardo Adocicados
|
Margaret Peacock
|
560
|
4 |
10620
|
8/5/1997 12:00:00 AM
|
Laughing Bacchus Wine Cellars
|
Andrew Fuller
|
57.5
|
5 |
10621
|
8/5/1997 12:00:00 AM
|
Island Trading
|
Margaret Peacock
|
758.5
|
6 |
10619
|
8/4/1997 12:00:00 AM
|
Mère Paillarde
|
Janet Leverling
|
1260
|
7 |
10618
|
8/1/1997 12:00:00 AM
|
Mère Paillarde
|
Nancy Davolio
|
2697.5
|
3. Sales Report with OPTIMIZE FOR UNKNOWN on multiple parameters (Using Input Values)
SQL Server Query 3
-- Advanced Query: Sales Report with OPTIMIZE FOR UNKNOWN on multiple parameters
DECLARE @TargetCustomerID NCHAR(5);
DECLARE @ReportStartDate DATETIME;
DECLARE @ReportEndDate DATETIME;
SET @TargetCustomerID = 'SAVEA';
SET @ReportStartDate = '1996-01-01';
SET @ReportEndDate = '1997-12-31';
SELECT
O.OrderID,
O.OrderDate,
C.CompanyName,
E.FirstName + ' ' + E.LastName AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
JOIN Customers AS C ON O.CustomerID = C.CustomerID
JOIN Employees AS E ON O.EmployeeID = E.EmployeeID
JOIN [Order Details] AS OD ON O.OrderID = OD.OrderID
WHERE O.CustomerID = @TargetCustomerID
AND O.OrderDate >= @ReportStartDate AND O.OrderDate <= @ReportEndDate
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (OPTIMIZE FOR (@TargetCustomerID UNKNOWN, @ReportStartDate UNKNOWN, @ReportEndDate UNKNOWN));
Create SQL query with SqlQueryBuilder 3
var (sql3, parameters3) = new SqlQueryBuilder()
.Select()
.Columns("O.OrderID","O.OrderDate","C.CompanyName")
.Column(new CONCAT(new Column("E.FirstName"), " ", new Column("E.LastName")), "EmployeeName")
.Column(new SUM(new ColumnArithmatic("OD.Quantity").MULTIPLY("OD.UnitPrice")
.MULTIPLY().StartBracket(1).SUBTRACT("OD.Discount").EndBracket()), "OrderTotalValue")
.From("Orders", "O")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("Customers", "C")
.On(new Column("O.CustomerID").Equale(new Column("C.CustomerID"))),
new INNERJOIN().TableName("Employees", "E")
.On(new Column("O.EmployeeID").Equale(new Column("E.EmployeeID"))),
new INNERJOIN().TableName("[Order Details]", "OD")
.On(new Column("O.OrderID").Equale(new Column("OD.OrderID")))
})
.Where(new Where(new Column("O.CustomerID").Equale("SAVEA"))
.AND(new Column("O.OrderDate").GreaterThanOrEqualeTo("1996-01-01"))
.AND(new Column("O.OrderDate").LessThanOrEqualeTo("1997-12-31")))
.GroupBy(new GroupBy("O.OrderID","O.OrderDate","C.CompanyName","E.FirstName","E.LastName"))
.OrderBy(new OrderBy().SetColumnDescending("O.OrderDate"))
.Option(new List<IOption>()
{
new OPTIMIZE_FOR_UNKNOWN("SAVEA", "1996-01-01","1997-12-31")
})
.Build();
Query build by SqlQueryBuilder 3
SELECT O.OrderID,
O.OrderDate,
C.CompanyName,
CONCAT(E.FirstName, @pMAIN_2507192011455537180, E.LastName) AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (@pMAIN_2507192011455537181 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
INNER JOIN
Customers AS C
ON O.CustomerID = C.CustomerID
INNER JOIN
Employees AS E
ON O.EmployeeID = E.EmployeeID
INNER JOIN
[Order Details] AS OD
ON O.OrderID = OD.OrderID
WHERE O.CustomerID = @pMAIN_2507192011455537182
AND O.OrderDate >= @pMAIN_2507192011455537183
AND O.OrderDate <= @pMAIN_2507192011455537184
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (OPTIMIZE FOR (@pMAIN_2507192011455537182 UNKNOWN, @pMAIN_2507192011455537183 UNKNOWN, @pMAIN_2507192011455537184 UNKNOWN));
Parameters (If used)
Name |
Value |
@pMAIN_2507192011455537180 |
|
@pMAIN_2507192011455537181 |
1 |
@pMAIN_2507192011455537182 |
SAVEA |
@pMAIN_2507192011455537183 |
1996-01-01 |
@pMAIN_2507192011455537184 |
1997-12-31 |
Query Results 3:
|
OrderID |
OrderDate |
CompanyName |
EmployeeName |
OrderTotalValue |
1 |
10757
|
11/27/1997 12:00:00 AM
|
Save-a-lot Markets
|
Michael Suyama
|
3082
|
2 |
10748
|
11/20/1997 12:00:00 AM
|
Save-a-lot Markets
|
Janet Leverling
|
2196
|
3 |
10722
|
10/29/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
1570
|
4 |
10713
|
10/22/1997 12:00:00 AM
|
Save-a-lot Markets
|
Nancy Davolio
|
2827.90002441406
|
5 |
10714
|
10/22/1997 12:00:00 AM
|
Save-a-lot Markets
|
Steven Buchanan
|
2205.75
|
6 |
10711
|
10/21/1997 12:00:00 AM
|
Save-a-lot Markets
|
Steven Buchanan
|
4451.69998931885
|
7 |
10700
|
10/10/1997 12:00:00 AM
|
Save-a-lot Markets
|
Janet Leverling
|
1638.40000915527
|
8 |
10678
|
9/23/1997 12:00:00 AM
|
Save-a-lot Markets
|
Robert King
|
5256.5
|
9 |
10657
|
9/4/1997 12:00:00 AM
|
Save-a-lot Markets
|
Andrew Fuller
|
4371.60000610352
|
10 |
10627
|
8/11/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
1185.75
|
11 |
10612
|
7/28/1997 12:00:00 AM
|
Save-a-lot Markets
|
Nancy Davolio
|
6375
|
12 |
10607
|
7/22/1997 12:00:00 AM
|
Save-a-lot Markets
|
Steven Buchanan
|
6475.39999389648
|
13 |
10603
|
7/18/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
1483
|
14 |
10555
|
6/2/1997 12:00:00 AM
|
Save-a-lot Markets
|
Michael Suyama
|
2944.40000915527
|
15 |
10510
|
4/18/1997 12:00:00 AM
|
Save-a-lot Markets
|
Michael Suyama
|
4707.53993225098
|
16 |
10452
|
2/20/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
2018.5
|
17 |
10440
|
2/10/1997 12:00:00 AM
|
Save-a-lot Markets
|
Margaret Peacock
|
4924.13519287109
|
18 |
10398
|
12/30/1996 12:00:00 AM
|
Save-a-lot Markets
|
Andrew Fuller
|
2505.59985351562
|
19 |
10393
|
12/25/1996 12:00:00 AM
|
Save-a-lot Markets
|
Nancy Davolio
|
2556.95002746582
|
20 |
10324
|
10/8/1996 12:00:00 AM
|
Save-a-lot Markets
|
Anne Dodsworth
|
5275.71510314941
|
4. Sales Report with OPTIMIZE FOR UNKNOWN on multiple parameters (Using Input Sequence)
SQL Server Query 4
-- Advanced Query: Sales Report with OPTIMIZE FOR UNKNOWN on multiple parameters
DECLARE @TargetCustomerID NCHAR(5);
DECLARE @ReportStartDate DATETIME;
DECLARE @ReportEndDate DATETIME;
SET @TargetCustomerID = 'SAVEA';
SET @ReportStartDate = '1996-01-01';
SET @ReportEndDate = '1997-12-31';
SELECT
O.OrderID,
O.OrderDate,
C.CompanyName,
E.FirstName + ' ' + E.LastName AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (1 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
JOIN Customers AS C ON O.CustomerID = C.CustomerID
JOIN Employees AS E ON O.EmployeeID = E.EmployeeID
JOIN [Order Details] AS OD ON O.OrderID = OD.OrderID
WHERE O.CustomerID = @TargetCustomerID
AND O.OrderDate >= @ReportStartDate AND O.OrderDate <= @ReportEndDate
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (OPTIMIZE FOR (@TargetCustomerID UNKNOWN, @ReportStartDate UNKNOWN, @ReportEndDate UNKNOWN));
Create SQL query with SqlQueryBuilder 4
var (sql4, parameters4) = new SqlQueryBuilder()
.Select()
.Columns("O.OrderID","O.OrderDate","C.CompanyName")
.Column(new CONCAT(new Column("E.FirstName"), " ", new Column("E.LastName")), "EmployeeName")
.Column(new SUM(new ColumnArithmatic("OD.Quantity").MULTIPLY("OD.UnitPrice")
.MULTIPLY().StartBracket(1).SUBTRACT("OD.Discount").EndBracket()), "OrderTotalValue")
.From("Orders", "O")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("Customers", "C")
.On(new Column("O.CustomerID").Equale(new Column("C.CustomerID"))),
new INNERJOIN().TableName("Employees", "E")
.On(new Column("O.EmployeeID").Equale(new Column("E.EmployeeID"))),
new INNERJOIN().TableName("[Order Details]", "OD")
.On(new Column("O.OrderID").Equale(new Column("OD.OrderID")))
})
.Where(new Where(new Column("O.CustomerID").Equale("SAVEA"))
.AND(new Column("O.OrderDate").GreaterThanOrEqualeTo("1996-01-01"))
.AND(new Column("O.OrderDate").LessThanOrEqualeTo("1997-12-31")))
.GroupBy(new GroupBy("O.OrderID","O.OrderDate","C.CompanyName","E.FirstName","E.LastName"))
.OrderBy(new OrderBy().SetColumnDescending("O.OrderDate"))
.Option(new List<IOption>()
{
new OPTIMIZE_FOR_UNKNOWN(3, 4, 5)
})
.Build();
Query build by SqlQueryBuilder 4
SELECT O.OrderID,
O.OrderDate,
C.CompanyName,
CONCAT(E.FirstName, @pMAIN_2507192011455678420, E.LastName) AS EmployeeName,
SUM(OD.Quantity * OD.UnitPrice * (@pMAIN_2507192011455678421 - OD.Discount)) AS OrderTotalValue
FROM Orders AS O
INNER JOIN
Customers AS C
ON O.CustomerID = C.CustomerID
INNER JOIN
Employees AS E
ON O.EmployeeID = E.EmployeeID
INNER JOIN
[Order Details] AS OD
ON O.OrderID = OD.OrderID
WHERE O.CustomerID = @pMAIN_2507192011455678422
AND O.OrderDate >= @pMAIN_2507192011455678423
AND O.OrderDate <= @pMAIN_2507192011455678424
GROUP BY O.OrderID, O.OrderDate, C.CompanyName, E.FirstName, E.LastName
ORDER BY O.OrderDate DESC
OPTION (OPTIMIZE FOR (@pMAIN_2507192011455678422 UNKNOWN, @pMAIN_2507192011455678423 UNKNOWN, @pMAIN_2507192011455678424 UNKNOWN));
Parameters (If used)
Name |
Value |
@pMAIN_2507192011455678420 |
|
@pMAIN_2507192011455678421 |
1 |
@pMAIN_2507192011455678422 |
SAVEA |
@pMAIN_2507192011455678423 |
1996-01-01 |
@pMAIN_2507192011455678424 |
1997-12-31 |
Query Results 4:
|
OrderID |
OrderDate |
CompanyName |
EmployeeName |
OrderTotalValue |
1 |
10757
|
11/27/1997 12:00:00 AM
|
Save-a-lot Markets
|
Michael Suyama
|
3082
|
2 |
10748
|
11/20/1997 12:00:00 AM
|
Save-a-lot Markets
|
Janet Leverling
|
2196
|
3 |
10722
|
10/29/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
1570
|
4 |
10713
|
10/22/1997 12:00:00 AM
|
Save-a-lot Markets
|
Nancy Davolio
|
2827.90002441406
|
5 |
10714
|
10/22/1997 12:00:00 AM
|
Save-a-lot Markets
|
Steven Buchanan
|
2205.75
|
6 |
10711
|
10/21/1997 12:00:00 AM
|
Save-a-lot Markets
|
Steven Buchanan
|
4451.69998931885
|
7 |
10700
|
10/10/1997 12:00:00 AM
|
Save-a-lot Markets
|
Janet Leverling
|
1638.40000915527
|
8 |
10678
|
9/23/1997 12:00:00 AM
|
Save-a-lot Markets
|
Robert King
|
5256.5
|
9 |
10657
|
9/4/1997 12:00:00 AM
|
Save-a-lot Markets
|
Andrew Fuller
|
4371.60000610352
|
10 |
10627
|
8/11/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
1185.75
|
11 |
10612
|
7/28/1997 12:00:00 AM
|
Save-a-lot Markets
|
Nancy Davolio
|
6375
|
12 |
10607
|
7/22/1997 12:00:00 AM
|
Save-a-lot Markets
|
Steven Buchanan
|
6475.39999389648
|
13 |
10603
|
7/18/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
1483
|
14 |
10555
|
6/2/1997 12:00:00 AM
|
Save-a-lot Markets
|
Michael Suyama
|
2944.40000915527
|
15 |
10510
|
4/18/1997 12:00:00 AM
|
Save-a-lot Markets
|
Michael Suyama
|
4707.53993225098
|
16 |
10452
|
2/20/1997 12:00:00 AM
|
Save-a-lot Markets
|
Laura Callahan
|
2018.5
|
17 |
10440
|
2/10/1997 12:00:00 AM
|
Save-a-lot Markets
|
Margaret Peacock
|
4924.13519287109
|
18 |
10398
|
12/30/1996 12:00:00 AM
|
Save-a-lot Markets
|
Andrew Fuller
|
2505.59985351562
|
19 |
10393
|
12/25/1996 12:00:00 AM
|
Save-a-lot Markets
|
Nancy Davolio
|
2556.95002746582
|
20 |
10324
|
10/8/1996 12:00:00 AM
|
Save-a-lot Markets
|
Anne Dodsworth
|
5275.71510314941
|