使用

时间:2016-08-16 14:35:14

标签: mysql

我有一个带有id(主键)的主表“contract”和一些列,我必须为每一行加总。 我的第二个表“付款”与“合同”的关系是1到n,对于“合同”中的每一行,“付款”中都有零到几行。

我可以选择“contrats”-table:

select c.Id, sum(c.field1 + c.field2 + c.field3) as TotalC from contracts c group by c.Id

我可以选择“付款”表格,如:

select p.Id, sum(p.field1) from payments p group by p.Id

所以c.Id和p.Id是相关的。两个选择每个合约ID给我一行。但并非每份合同都有付款。是否有可能以合理的方式组合这两个选择?或者我会更好地在我的程序中获得这两个选择并在sql之外进行比较?

我可以使用像scaisEdge建议的INNER JOIN,但是 我遇到的问题是:

分组前的选择结果:

ID  |  TotalContractSum  |  SinglePayment
22  | 50,00 | 25,00
22  | 50,00 | 30,00

分组后的结果(结果):

22 | 100,00 | 55,00

现在,SinglePayment按原样分组,但TotalContractSum增加了一倍,因为付款表中有两行。简而言之,分组就是问题所在。

1 个答案:

答案 0 :(得分:0)

您可以使用内部联接

var p1 = PDP.elementPrice.getText().then(function (value) {
    return value.replace(/[^0-9\.,-]+/g, "");
});
var p2 = PDP.elementArticleNumber.getText();

protractor.promise.all([p1, p2]).then(function(values) {
    var price = values[0],
        number = values[1];

    // do something with price and number
});