我应该如何编写查询来显示来自两个表的数据

时间:2016-02-25 20:12:45

标签: asp.net sql-server

我想从两个表中获取数据:

+----+------+
| id | name |
+----+------+
|  1 | John |
|  2 | Alex |
|  3 | Able |
|  4 | Ash  |
+----+------+

+------+------+
| name | sale |
+------+------+
| John |  100 |
| Alex |  200 |
| Able |  300 |
| Able |  100 |
| Alex |  500 |
+------+------+

从第一个表中检索所有代理名称,从第二个表中检索销售总额。如果没有任何用户销售,那么它必须给我零或零值。

The output is something like shown in image.

2 个答案:

答案 0 :(得分:1)

要在没有销售的情况下返回空值,您可以使用左外连接。

SELECT
      agent.name
    , SUM(sale) AS totalSales
FROM
    agent
    LEFT OUTER JOIN sale ON agent.name = sale.name
GROUP BY
      agent.name

如果您希望该值为零,则可以使用coalesce或isnull函数

SELECT
      agent.name
    , COALESCE(SUM(sale),0) AS totalSales
FROM
    agent
    LEFT OUTER JOIN sale ON agent.name = sale.name
GROUP BY
      agent.name

答案 1 :(得分:0)

您可能希望使用左连接,因为您希望结果中的每个销售人员都有一行。所以,像:

SELECT a.name, SUM(s.sale)
FROM Agent a
LEFT JOIN Sale s on a.name = s.name
GROUP BY a.name