Solved

selecting rows base on sum of field

Posted on 2014-04-25
7
356 Views
Last Modified: 2014-05-10
hi i have one table like this:

TBPRODUCT( ID AS INTEGER, PRODUCT AS STRING, PRICE AS DOUBLE )

this table have 500 rows and i want to select 6 products at a time that mach sum of price = 150.

and on the second time i select i don't want the same products i select on the first time.

how can i accomplish this?
0
Comment
Question by:rafaelrgl
7 Comments
 
LVL 22

Accepted Solution

by:
plusone3055 earned 167 total points
ID: 40023181
can you please explain what the purpose of this function is ?

I understand what your asking for

500 Rows

select 6 rows that will total a price of 150
select another 6 rows (not including the previously selected 6 rows) also totaling 150

Can you elaborate on the purpose for this equation ?
0
 
LVL 1

Author Comment

by:rafaelrgl
ID: 40023212
i need to create kits to sell that total 150 each an each kit must be unique.
0
 
LVL 32

Assisted Solution

by:awking00
awking00 earned 167 total points
ID: 40023238
We understand what you're trying to do, but I'm not sure you can do this with pure sql. What are the minimum and maximum prices? Do the contain cents or are they even dollars? What is the average price? Can you post just the product_id and price (we don't need to know what the products are) for the 500 row table? Is there any tolerance (e.g. would one kit of 149.95 and another of 150.05 be acceptable)?  I also assume you would want the maximum number of kits that can be created.
0
Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

 
LVL 22

Assisted Solution

by:plusone3055
plusone3055 earned 167 total points
ID: 40023245
awking:
I agree with you as well
I could see a for loop done with .NET
or would a pivot table work here ?
0
 
LVL 26

Assisted Solution

by:skullnobrains
skullnobrains earned 83 total points
ID: 40028928
in order to "select rows based on a field's sum" you would use something like this in sql

select sum(field) as sum, ...
from table
group by whatever
having sum=150

but then given what is understand from your goals this will not help since sql will not try every possible grouping by itself
0
 
LVL 35

Assisted Solution

by:David Todd
David Todd earned 83 total points
ID: 40028980
Hi,

to do as requested with pure SQL would require 5 cross joins, producing a table that is 500^6 rows!

And who said those kits would make sense?

Imagine, if you will, a combined plumbers and electrical merchant - we had a national chain doing this in my neck of the woods, but for the purposes of illustration please bear with me - what sense does it make to build a kit out of an oven and some low rated fuse wire and a toilet cistern flush valve?

And generally, kits are sold as such for the whole costing less than the individual parts, so there is some rounding involved as well.

Regards
  David
0
 
LVL 32

Assisted Solution

by:awking00
awking00 earned 167 total points
ID: 40029343
Can you post just the prices? There may be a means of at least approximating a sum of $150 for kits of six products, but that possibility diminishes if there can be a price of $145, for example, or if the average product price is no where near $25.
0

Featured Post

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
T-SQL: Episode III - Revenge of The Dude 24 52
sql server insert 12 30
Text file into sql server 5 21
2 IIF's in Access query 25 19
JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question