繁体   English   中英

将两个 SQL 表合并为一个排序的 HTML 输出

[英]Combining two SQL tables into one sorted HTML output

我已经创建了我的两个 SQL 表的示例。 第一个需要一个简单的乘法来产生最终的“收入”,而第二个表将该值直接存储为“奖金”。 我想要做的是创建一个 PHP 页面,它允许我选择任何员工,并让它生成一个 HTML 表(如我的代码片段中的第三个表)。

我不确定是否可以在 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>

每月数据(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

奖金数据(sql表):

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

您需要将两个表中的数据分别拉出,然后将它们联合在一起。 像下面这样的 SQL 将为您拉回数据,之后计算最终总数应该是直接的。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM