How to loop through a dataset using t-sql

I have a database that has different prices for different items from different stores.  I've given each item a standard number, and an indicator to tell where the item came from.  What I'd like to do is create a procedure to give me a percent price difference based on the average of all items.  So for the sample data below, I want the average price of all items from Wal-Mart, the average price of all items from Shaw's and the average price of all items from Meijer.  Then I want the percent difference between all three.  So if the avg for Wal-Mart is 2.82, and Shaw's is 2.76, then the pct diff between Shaw's and Walmart is 2.13%

The other thing is the data is grouped by department.  So I have line items for dairy, bread, paper products, etc.  The same calcuation would have to be done for all of the departments.

Thanks for help on this.

Ven_Ind  Vendor     Item                                        Price       Dept_Ind
1             Wal-Mart	Eggs, large, dozen	                3.13       12
1             Wal-Mart	Eggs, medium, dozen	3.05       12
1             Wal-Mart	Cheese, sliced, American	2.89       12
1             Wal-Mart	Cheese, sliced, Swiss	2.74       12
1             Wal-Mart	Sour cream	                2.59       12
1             Wal-Mart	Sour cream,light	                2.52       12
2             Shaw's	Eggs, large, dozen	                3.13       12
2             Shaw's	Eggs, medium, dozen	2.97       12
2             Shaw's	Cheese, sliced, American	2.82       12
2             Shaw's	Cheese, sliced, Swiss	2.67       12
2             Shaw's	Sour cream	                2.52       12
2             Shaw's	Sour cream,light	                2.45       12
3             Meijer	Eggs, large, dozen	                2.45       12
3             Meijer	Eggs, medium, dozen	3.20       12
3             Meijer	Cheese, sliced, American	3.13       12
3             Meijer	Cheese, sliced, Swiss	3.05       12
3             Meijer	Sour cream	                2.97       12
3             Meijer	Sour cream,light	                2.88       12

Open in new window

LVL 2
kenyayvetteAsked:
Who is Participating?
 
ralmadaCommented:
Please try this:
select a.vendorid, a.vendor, a.avgprice, b.vendorid, b.vendor, b.avgprice, ((a.avgprice - b.avgprice) / a.avgprice) as ptcdifference from (
select vendorid, vendor, avg(price) as avgprice from yourtable
group by Vendor) a
cross join (select vendorid, vendor, avg(price) as avgprice from yourtable
group by Vendor) b
where a.vendor < b.vendorid

Open in new window

0
 
kenyayvetteAuthor Commented:
Thank you so very much, that is exactly what I needed.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.