私は2つのsql queries
を持っています(それぞれ1つの学期に対応します)。これらの2つのクエリの行数は同じではありません。それぞれには3つのパラメータ:Article id_Customer Turnover
が含まれています。同じループで2つのクエリの結果を比較する方法
select "LRU", "Client", round(sum("Montant_fac_eur"))
from "foundry_sync"."data"
where "Nature"='Repair'
and extract(month from "Facturation") between 0+{{w_widget6.selectedValue}} and 5+{{w_widget6.selectedValue}}
group by "LRU", "Client"
クエリの学期は次のように表す:最初の学期を計算要求次
この
{
"LRU": [
"ATSU",
"ATSU",
"ATSU",
"ATSU
.
.
.
],
"Client": [
394,
594,
4001,
5725,
7057,
7090
.
.
.
],
"round": [
20866,
16814,
27421,
0,
6593,
66965,
8401
.
.
.
]
この結果のサンプル次
result 1 result2
"[Article1,394,3914]" "[Article1,394,3914]"
"[Article1,594,16814]" "[Article2,594,10088]"
"[Article1,4001,26798]" "[Article1,4001,11107]"
"[Article3,5725,0]" "[Article3,5725,0]"
"[Article5,7057,5700]" "[Article5,7057,3916]"
"[Article8,7090,56467]" "[Article4,7090,17558]"
"[Article2,7236,8401]" "[Article8,7236,8401]"
"[Article11,7242,12766]" "[Article14,7242,4255]"
"[Article2,7262,892]" "[Article2,7262,892]"
"[Article3,7302,17234]" "[Article3,7302,8928]"
ご覧のとおり、お客様は両方の学期に商品の売上高を得ることができます。 1学期(第1学期または第2学期)の論文の売上高。 最初に、各学期のごとにcustomer
の売上高を比較したいと思います。
var query1 = {{repair_semestre1}};
var query2 = {{repair_semestre2}};
var result1 = [];
var result2 = [];
for (var i = 0; i < query1.LRU.length; i++) {
result1.push(formatName(query1.LRU[i], query1.Client[i], query1.round[i]));
}
for (var i = 0; i < query2.LRU.length; i++) {
result2.push(formatName(query2.LRU[i], query2.Client[i], query2.round[i]));
}
return {
result1: result1,
result2: result2
};
/* for (var i = 0; i < query1.LRU.length, i < query2.LRU.length; i++) {
if((query1.LRU[i] == query2.LRU[i]) && (query1.Client[i] == query2.Client[i])) {
if(query1.round[i] > query2.round[i]) {
return "ok";
}
else { return "non";
}
}
} */
function formatName(lru, turnover, round) {
return "[" + lru + "," + turnover + "," + round + "]";
}
私は彼女の結果を比較する機能外のこれら2つのクエリのループをした:
var query1 = {{repair_semestre1}};
var query2 = {{repair_semestre2}};
for (var i = 0; i < query1.LRU.length, i < query2.LRU.length; i++) {
if((query1.LRU[i] == query2.LRU[i]) && (query1.Client[i] == query2.Client[i])) {
if(query1.round[i] > query2.round[i]) {
return "ok";
}
else { return "not ok";
}
}
}
それだけでnot ok
を返し、残りの行を完了していません。私がなぜそれを説明してくれますか? そして、このループを関数に追加して実行するにはどうしたらいいですか?
ありがとうございます。
return'が検出された 'たら、ループが実行を終了します。たぶん結果の配列を作成する必要がありますか?適切なデータを使って作業例を投稿すると、私は助けようとする可能性があります。 –
@MaazSyedAdeeb私は私の質問を編集した、私はトウクエリの配列を行った私の機能を追加しました。適切なデータを掲示するには、上記のデータは適切なデータです。記事の名前を1、2、8で変更します。私はあなたを理解してくれることを願っています。ご協力ありがとうございました。 – vero
@MaazSyedAdeebどうすればこの問題を解決できますか。 – vero