I have the following tables:
Stocks
id | name | amount |
---|---|---|
1 | Pen | 35 |
2 | Cd | 21 |
3 | Bag | 15 |
StockUnits
id | name | include | stockid |
---|---|---|---|
1 | onepen | 1 | 1 |
2 | dozen | 6 | 1 |
3 | 24 | 1 | |
4 | onecd | 1 | 2 |
5 | 5 | 2 | |
6 | onebag | 1 | 3 |
So how do I get a result like the following with SELECT query?
stock | unit | qty |
---|---|---|
Pen | onepen | 5 |
Pen | dozen | 1 |
Pen | 1 | |
Cd | onecd | 1 |
Cd | 4 | |
Bag | onebag | 15 |
As we see, each stock has some units.
Now I want to know how many units do i have according to the amount field, For example:
We have 35 pens which is equal to 1 pocket and 1 dozen and 5 onepen because:
For pocket we have 1 pocket because (each pocket includes 24 pen)
35/24=1
35%24=11
For dozen we have 1 dozen because (each dozen includes 6 pen)
11/6=1
11%6=5
For onepen we have 5 onepen because
5 onepen because we don't have any smaller unit
Now we have:
1 pocket
1 dozen
5 onepen
Same calculation for Cd and Bag...
I know to get the desired result a temporary variable should be used to store the result of the MOD and use the variable for the next row but how?