chiark / gitweb /
Put data into flows
[ypp-sc-tools.web-live.git] / yarrg / web / routetrade
index 407cc8c5e39b48bb28ac3a6466106e0c0c11afa6..de9e73c8129c5793b1dd1b7d3ab2f5ed344fb724 100644 (file)
@@ -75,18 +75,21 @@ foreach my $src_i (0..$#islandids) {
 }
 
 my $stmt= "            
-       SELECT  commods.commodname              commodname,
-               commods.commodid                commodid,
-               commods.unitmass                mass,
-               commods.unitvolume              volume,
-               sell_islands.islandid           org_id,
-               sell_islands.islandname         org_name,
-               sell.price                      org_price,
-               sum(sell.qty)                   org_qty,
-               buy_islands.islandid            dst_id,
-               buy_islands.islandname          dst_name,
-               buy.price                       dst_price,
-               sum(buy.qty)                    dst_qty
+       SELECT  sell_islands.islandname                         org_name,
+               sell_islands.islandid                           org_id,
+               sell.price                                      org_price,
+               sum(sell.qty)                                   org_qty,
+               buy_islands.islandname                          dst_name,
+               buy_islands.islandid                            dst_id,
+               buy.price                                       dst_price,
+               sum(buy.qty)                                    dst_qty,
+               commods.commodname                              commodname,
+               commods.commodid                                commodid,
+               commods.unitmass                                mass,
+               commods.unitvolume                              volume,
+               buy.price - sell.price                          unitprofit,
+               min(sell.qty,buy.qty)                           tqty,
+               min(sell.qty,buy.qty) * (buy.price-sell.price)  profit
        FROM commods
        JOIN buy  on commods.commodid = buy.commodid
        JOIN sell on commods.commodid = sell.commodid
@@ -97,14 +100,17 @@ my $stmt= "
           OR   ", @flow_conds)."
        )
          AND   buy.price > sell.price
-       GROUP BY commodname, commods.commodid,
-               org_id, org_price, dst_id, dst_price
+       GROUP BY commods.commodid, org_id, org_price, dst_id, dst_price
+       ORDER BY org_name, dst_name, profit DESC, commodname,
+                org_price, dst_price DESC
      ";
 
 my $sth= $dbh->prepare($stmt);
 $sth->execute(@query_params);
+my @flows;
 
 </%perl>
+
 % if ($qa->{'debug'}) {
 <pre>
 <% $stmt |h %>
@@ -112,7 +118,17 @@ $sth->execute(@query_params);
 </pre>
 % }
 
-<& dumpqueryresults, sth =>$sth &>
+<& dumpqueryresults:start, sth => $sth &>
+% my $flow;
+% while ($flow= $sth->fetchrow_hashref()) {
+%      push @flows, $flow;
+<& dumpqueryresults:row, sth => $sth, row => $flow &>
+% }
+<& dumpqueryresults:end &>
+
+<%perl>
+
+</%perl>
 
 <%init>
 use CommodsWeb;