これはデータベースクエリの結果です。 ownow今表示する必要がある結果は(価格は元々直接結果を得たので、利便性のために式に書きました):
価格注文_ID表示する必要がある結果は(価格)x0045178
計算アイデア:同じ注文番号、(20/60)*70、(40/60)*70、異なる注文番号は価格値を直接取得します。
ディスカッションへの返信(解決策)
60は指定されていますか? 70もあり、上記の結果はまた* 700となり、意味不明です。計算の考え方は次のとおりです。同じ注文番号、(20/60)*700、(40/60)*700、異なる注文番号は価格値を直接取得します。そういうことなんですね。 700 は同じ注文価格の合計です。 60 は、同じ注文のコスト 3 の合計です。
select cost3, (cost3/sum_cost3)*sum_price as price, a.order_id form tbl_name a, (select order_id, sum(cost3) as sum_cost3, sum(price) as sum_price from tbl_name group by order_id) t where a.order_id=t.order_id
while($r = mysql_fetch_assoc($rs)) { $st[$r['order_id']['cost3'] += $r['cost3']; $st[$r['order_id']['price'] += $r['price'];}mysql_data_seek($rs, 0);while($r = mysql_fetch_assoc($rs)) { $res[] = ($r['cost3']/$st['cost3'])*$st['price'];}
select a.order_id , (select (a.cost3/sum(cost3) * sum(price)) from od where order_id=a.order_id group by order_id) as price from od a;
うーん、でもなぜ sum(price) を追加したのか ヒント: オペランドには 1 つの列が含まれている必要があります
SQL コード?123select a.order_id , (select (a.cost3/sum(cost3) * sum(price)), sum (price) from od where order_id=a.order_id group by order_id) as Price from od a; ヒント: オペランドを 1 つ追加しないのはなぜですか?
内部のサブクエリには 2 つのフィールドがあるため、そのように記述すると機能しません
うわー