如何根据画面中的组进行总结

时间:2015-06-01 15:37:00

标签: sql distinct tableau

所以我在Tableau中加入了2个表。第一张表是合同中的3个项目:
项目|合同|位置|量
project1 | contract1 |得克萨斯州100个
project1 | contract2 |得克萨斯州200个
project1 | contract3 |得克萨斯州300个
project2 | contract1 |纽约| 1000
project2 | contract2 |纽约| 2000
project2 | contract3 |纽约| 3000

第二张表是合约细节:
项目|合同|细节|风险
project1 | contract1 | a | 0.5
project1 | contract1 | b | 0.9
project1 | contract1 | c | 0.99
project2 | contract3 | a | 0.2
project2 | contract3 | b | 0.45
project2 | contract3 | c | 0.33

我正在创建一个仪表板,所以这些表必须连接,问题是一旦加入,结果表在第一个表金额字段中有重复。因此,如果我想要按位置的总和(金额),它计算:
当我需要100 + 200 + 300时,德克萨斯100 + 100 + 100 + 200 + 300。现在我加入桌子,如何从第一张表中获得德州总和?

1 个答案:

答案 0 :(得分:1)

一般说话..不知道你可能遇到的桌面具体问题..

如果明细/风险信息与您正在进行的工作无关,请在加入前选择不同的值。

SELECT 
    *
FROM 
     (Distinct Project,Contract) Table2 AS a
     INNER JOIN Table1 as b
         ON a.Project = b.Project
         AND a.Contract = B.Contract

如果其他数据与您相关,那么您需要弄清楚如何对其进行反规范化。在这种情况下,您将如何分割匹配行中的风险以创建每个区域的单行。 ..说这不是风险,说它是你想要加起来的费用分解你可以做到这一点

SELECT 
    b.*
    ,sum(a.cost)
FROM 
     Table2 AS a
     INNER JOIN Table1 as b
         ON a.Project = b.Project
         AND a.Contract = B.Contract
GROUP BY
    a.Project
    a.Contract

不确定这是否有帮助?

嗯..如果不确切知道你在做什么,这将会很棘手..但我有两个建议:

  1. 通过将这两个字段添加到一起来创建项目 - 合同列,然后加入该列。
  2. 例如在excel中使用powerpivot并且我正在处理销售订单时,我经常需要创建如下列:=A1&"-"&B1来给我一个“1234-10”类型的结果。

    1. 将项目标准化(使用数据库中的视图)将项目自己放入一个表中(可能需要总计成本),以便所有其他表只链接到该表。 - 我将不得不玩它,看看它是如何淘汰的。
    2. ..我只是把那些想法放在那里,因为他们可能有所帮助,但对不起,如果他们只是混乱。