I have a table comment and a table price like below. The key columns in both tables are ticker_id, price_datetime and price_open. The last column threshold in table comment (which currently NULL) is something that I need to fill in with after some calculation queries (if this is achievable).
comment table:
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| comment_id | comment_datetime | author | comment | ticker_id | price_datetime | price_open | threshold |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| 1 | 2014-09-22 06:05:00 | A1 | C1 | 343 | 2014-09-22 08:00:00 | 53.25000 | |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| 2 | 2014-09-22 06:39:00 | A2 | C2 | 1 | 2014-09-22 08:00:00 | 62.00000 | |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
| 3 | 2014-09-22 08:13:00 | A3 | C3 | 178 | 2014-09-22 08:13:00 | 5.15000 | |
+------------+---------------------+--------+---------+-----------+---------------------+------------+-----------+
price table:
+----------+---------------------+------------+-----------+
| price_id | price_datetime | price_open | ticker_id |
+----------+---------------------+------------+-----------+
| 1 | 2014-09-22 08:01:00 | 62.00000 | 1 |
+----------+---------------------+------------+-----------+
| 2 | 2014-09-22 08:02:00 | 62.00000 | 1 |
+----------+---------------------+------------+-----------+
| 3 | 2014-09-22 08:03:00 | 62.00000 | 1 |
+----------+---------------------+------------+-----------+
In each row of table comment, price_open will be used as "base price".
For each row of table
comment- Match the
ticker_id,price_datetimeandprice_openwith tableprice - Then, get the +-2 days for each
price_datetime(follows with theprice_open) - Then, count whether any of the
price.price_openwithin that 5 days exceeds 5%, 10% or 15% of the "base price"
- Match the
Conditions:
- If any of the
price.price_openwithin that 5 days equals/exceeds 15% of the "base price", then fill incomment.thresholdwith "R" - If any of the
price.price_openwithin that 5 days equals/exceeds 10% of the "base price" (but less than 15%), then fill incomment.thresholdwith "A" - If any of the
price.price_openwithin that 5 days equals/exceeds 5% of the "base price" (but less than 10%), then fill incomment.thresholdwith "Y" - If any of the
price.price_openwithin that 5 days is less 5%, then fill incomment.thresholdwith "C" - For empty values in columns
comment.price_datetimeandcomment.price_open, we will leave it NULL as it is, thus NULL forcomment.thresholdas well.
- If any of the
Is the above going to be achievable in MySQL using JOIN? I am trying to learn about JOIN right now, unfortunately it seems way too complicated to me, I have no clue about the query that I should execute as I just started learning MySQL.
I've tried explaining my question in details, but if there's anything unclear, kindly let me know.
Any help would be much appreciated. Thank you.
Aucun commentaire:
Enregistrer un commentaire