我有一个带有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增加了一倍,因为付款表中有两行。简而言之,分组就是问题所在。
答案 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
});