我試圖根據 % 比較來自同一 vendorid 的購買率,如果所有購買值都在最低購買率的 2% 以內,則獲得出售率。我要為該購買率增加 5%。如果一個買入值超過 2%,則使用的行值將為零。如果最大買入價值和最小買入價值的差異小于 2%,那么賣出價值將為(最大買入率 5%)。請參閱我從以下選擇查詢中獲得的下表。
SELECT distinct LOWER(vendors.tag), vendors.buyrate, ((buyrate *'0.05') buyrate) AS midrate, (select distinct
min(midrate)) AS sellrate, vendors.ship, vendorid,
used FROM vendors WHERE vendors.ship IN (9,0)
order by vendorid
| 下(供應商。標簽) | 購買率 | 中速 | 賣出價 | 船 | 供應商ID | 用過的 |
|---|---|---|---|---|---|---|
| 頸椎病 | 1.15 | 1.2075 | 1.2075 | 9 | 2 | 11 |
| 頸椎病 | 1.17 | 1.2285 | 1.2285 | 9 | 2 | 12 |
| 頸椎病 | 1.20 | 1.26 | 1.26 | 9 | 2 | 13 |
| 公關 | 1.10 | 1.155 | 1.155 | 9 | 3 | 14 |
| 公關 | 1.16 | 1.218 | 1.218 | 9 | 3 | 15 |
| 微信 | 1.32 | 1.386 | 1.386 | 9 | 4 | 16 |
| 微信 | 1.33 | 1.3965 | 1.3965 | 9 | 4 | 17 |
| 微信 | 1.34 | 1.407 | 1.407 | 9 | 4 | 18 |
| 微信 | 1.36 | 1.428 | 1.428 | 9 | 4 | 19 |
我的目標是獲得以下結果:
| 下(供應商。標簽) | 購買率 | 中速 | 賣出價 | 船 | 供應商ID | 用過的 |
|---|---|---|---|---|---|---|
| 頸椎病 | 1.15 | 1.2285 | 1.2285 | 9 | 2 | 11 |
| 頸椎病 | 1.17 | 1.2285 | 1.2285 | 9 | 2 | 12 |
| 頸椎病 | 1.20 | 1.26 | 1.26 | 9 | 2 | 0 |
| 公關 | 1.10 | 1.155 | 1.155 | 9 | 3 | 14 |
| 公關 | 1.16 | 1.218 | 1.218 | 9 | 3 | 0 |
| 微信 | 1.32 | 1.407 | 1.407 | 9 | 4 | 16 |
| 微信 | 1.33 | 1.407 | 1.407 | 9 | 4 | 17 |
| 微信 | 1.34 | 1.407 | 1.407 | 9 | 4 | 18 |
| 微信 | 1.36 | 1.428 | 1.428 | 9 | 4 | 0 |
使用 5.1.73 mysql 版本。任何幫助,將不勝感激。謝謝你。
uj5u.com熱心網友回復:
這樣你就明白了,MySQL 幾乎可以做任何事情,但對于 MySQL 來說并不是真正的事情
一般來說,您現在需要知道您想要什么,然后您必須考慮如何在各個級別獲取這些資訊
要了解您需要理解所有子查詢并加入我所做的,以遵循您的想法。
CREATE TABLE vendors ( vendors1 char(30) , buyrate decimal(10,5), ship int(11) , vendorid int(30) , used int(11) ); INSERT INTO vendors ( vendors1, buyrate, ship, vendorid, used) VALUES ('crna', 1.15, 9, 2, 11), ('crna', 1.17, 9, 2, 12), ('crna', 1.20, 9, 2, 13), ('prllc', 1.10, 9,3, 14), ('prllc', 1.16, 9, 3, 15), ('wmllc', 1.32, 9, 4, 16), ('wmllc', 1.33, 9, 4, 17), ('wmllc', 1.34, 9, 4, 18), ('wmllc', 1.36, 9, 4, 19);
SELECT vendors1, buyrate,selrate, ship, v2.vendorid, IF(FIND_IN_SET(buyrate ,sellunder), used,0) as used FROM vendors v2 INNER JOIN (SELECT vendorid,GROUP_CONCAT(buyrate) sellunder, MAX(buyrate) * 1.05 selrate FROM (SELECT v.vendorid, buyrate FROM vendors v JOIN (SELECT vendorid, MIN(buyrate) * 1.02 minbyrate FROM vendors GROUP BY vendorid) v1 ON v.vendorid = v1.vendorid WHERE v.buyrate < minbyrate) t2 GROUP BY vendorid) v3 ON v2.vendorid = v3.vendorid供應商1 | 購買率| 自我 | 船舶 | 供應商ID | 用過的 :------- | ------: | --------: | ---: | -------: | ---: 克納 | 1.15000 | 1.2285000 | 9 | 2 | 11 克納 | 1.17000 | 1.2285000 | 9 | 2 | 12 克納 | 1.20000 | 1.2285000 | 9 | 2 | 0 公司| 1.10000 | 1.1550000 | 9 | 3 | 14 prlc | 1.16000 | 1.1550000 | 9 | 3 | 0 wmllc | 1.32000 | 1.4070000 | 9 | 4 | 16 wmllc | 1.33000 | 1.4070000 | 9 | 4 | 17 wmllc | 1.34000 | 1.4070000 | 9 | 4 | 18 wmllc | 1.36000 | 1.4070000 | 9 | 4 | 0
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351102.html
標籤:mysql
