2015-09-14 22 views
-2

我创建了一个我的两个SQL表的示例。第一个需要简单的乘法来产生最终的“收入”,而第二个表格将该值直接存储为“奖金”。我希望能够做到的是创建一个PHP页面,它允许我选择任何员工,并让它生成一个HTML表格(就像我的片段中的第三个表格)。将两个SQL表合并到一个排序的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>

回答

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 

赠品数据(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 
相关问题