将两个SQL表组合成一个已排序的HTML输出

时间:2015-09-14 23:12:17

标签: php html sql

我创建了两个SQL表的示例。第一个需要简单的乘法来产生最终的" Revenue"而第二个表直接将这个值存储为" Bonus"。我希望能够做的是创建一个PHP页面,它允许我选择任何员工,并让它生成一个HTML表格(就像我的代码段中的第3个表格)。

我不确定我是否可以"加入"这两个表以某种方式在SQL查询中。我可以在每个表上运行两个单独的查询,两个生成两个单独的数组,但我不知道如何按日期顺序对表进行排序。



MONTHLY DATA (sql table)
<table>
  <tr>
    <th>Month</th>
    <th>Employee</th>
    <th>Net Sales</th>
    <th>Com%</th>
  </tr>
  <tr>
    <td>Oct</td>
    <td>Tim</td>
    <td>275,500</td>
    <td>.05</td>
  </tr>
  <tr>
    <td>Oct</td>
    <td>Sara</td>
    <td>219,200</td>
    <td>.06</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Tim</td>
    <td>391,500</td>
    <td>.055</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Sara</td>
    <td>359,800</td>
    <td>.06</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Sara</td>
    <td>116,100</td>
    <td>.10</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Alex</td>
    <td>217,100</td>
    <td>.04</td>
  </tr>
</table>
<br />
<br />BONUS DATA (sql table):
<table>
  <tr>
    <th>Month</th>
    <th>Employee</th>
    <th>Bonus</th>
  </tr>
  <tr>
    <td>Oct</td>
    <td>Tim</td>
    <td>500</td>
  </tr>
  <tr>
    <td>Oct</td>
    <td>Sara</td>
    <td>800</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Tim</td>
    <td>600</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Sara</td>
    <td>950</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>Alex</td>
    <td>450</td>
  </tr>
</table>
<br />
<br />View Sara's Monthly Revenue (html output):
<table>
  <tr>
    <th>Month</th>
    <th>Toal Rev</th>
    <th>Source</th>
  </tr>
  <tr>
    <td>Oct</td>
    <td>13,152</td>
    <td>"from sales"</td>
  </tr>
  <tr>
    <td>Oct</td>
    <td>800</td>
    <td>"bonus"</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>33,198</td>
    <td>"from sales"</td>
  </tr>
  <tr>
    <td>Nov</td>
    <td>950</td>
    <td>"bonus"</td>
  </tr>
  <tr>
    <td>.</td>
  </tr>
  <tr>
    <td></td>
    <td>48,100</td>
    <td>TOTAL</td>
  </tr>
</table>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

每月数据(sql表)

Month    Employee    Net Sales    Com%
Oct      Tim         275,500      .05
Oct      Sara        219,200      .06
Nov      Tim         391,500      .055
Nov      Sara        359,800      .06
Nov      Sara        116,100      .10
Nov      Alex        217,100      .04

BONUS DATA(sql table):

Month   Employee    Bonus
Oct     Tim         500
Oct     Sara        800
Nov     Tim         600
Nov     Sara        950
Nov     Alex        450

您需要分别从两个表中提取数据,然后将它们联合起来。下面的SQL将为您提取数据,之后计算最终总数应该是striaghtforward。

SELECT
    Month,
    [Total Rev],
    Source
FROM
    (
    SELECT
        Employee,
        Month,
        SUM([Net Sales] * [Com%]) AS [Total Rev],
        'from sales' AS Source
    FROM
        [MONTHLY DATA]
    GROUP BY
        Employee,
        Month
    UNION
    SELECT
        Employee,
        Month,
        SUM(Bonus) AS [Total Rev],
        'bonus'
    FROM
        [BONUS DATA]
    GROUP BY
        Employee,
        Month
    ) AS tbl1
WHERE
    Employee='Sara'
ORDER BY
    Month,
    Source DESC