안녕하세요, 가끔 다음과 같은 테이블이 변경되는 경우 :

그러나 다른 날은 다음과 같을 수 있습니다.

그리고 어떻게 든 날짜와 데이터를 제외한 모든 열을 합산하는 새 행을 만들고 싶습니다.
JSL에서이를 수행하는 가장 좋은 방법은 무엇입니까?
열 이름을 취한 다음 데이터와 날짜를 제거하려고 시도했지만 각 열에 대해 합계 부분을 수행하는 방법을 모르겠습니다.
요약을 사용해 보았지만 변경 될 때마다 a, b, r, x와 a, c, f의 합계가 될 것이므로 이것이 가능할지 모르겠습니다 ..
Summary(
Sum( :A ),
Sum( :B ),
Sum( :R ),
Sum( :X ),
Freq( "None" ),
Weight( "None" )
)
Summary(
Sum( :A ),
Sum( :C ),
Sum( :F ),
Freq( "None" ),
Weight( "None" )
)
아마도 여기와 비슷한 아이디어를 사용할 수 있습니다.
열 이름을 지정하지 않고 여러 열의 요약을 만드는 방법은 무엇입니까?
Names Default To Here(1);
dt1 = New Table("Untitled1",
Add Rows(3),
Compress File When Saved(1),
New Column("data", Character, "Nominal", Set Values({"a", "b", "c"})),
New Column("date", Numeric, "Continuous", Format("Best", 12), Set Values([2021, 2021, 2021])),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([0, 50, 2])),
New Column("c", Numeric, "Continuous", Format("Best", 12), Set Values([1, 0, 0])),
New Column("f", Numeric, "Continuous", Format("Best", 12), Set Values([0, 0, 7]))
);
colname = dt1 << get column names(string);
colname = Substr(colname, 3); //remove data and date columns from list
summary_dt1 = dt1 << Summary(Sum(Eval(colname)), Freq("None"), Weight("None"));
summary_dt1 << Delete Columns("N Rows");
dt2 = New Table("Untitled2",
Add Rows(3),
Compress File When Saved(1),
New Column("data", Character, "Nominal", Set Values({"a", "b", "c"})),
New Column("date", Numeric, "Continuous", Format("Best", 12), Set Values([2021, 2021, 2021])),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([0, 50, 2])),
New Column("b", Numeric, "Continuous", Format("Best", 12), Set Values([1, 0, 0])),
New Column("r", Numeric, "Continuous", Format("Best", 12), Set Values([0, 0, 7])),
New Column("x", Numeric, "Continuous", Format("Best", 12), Set Values([2, 7, 1]))
);
colname = dt2 << get column names(string);
colname = Substr(colname, 3); //remove data and date columns from list
summary_dt2 = dt2 << Summary(Sum(Eval(colname)), Freq("None"), Weight("None"));
summary_dt2 << Delete Columns("N Rows");@jthi가 정답을 제공했습니다. 저는 제가 쓰는 많은 스크립트에서 매우 유용하다고 생각하는 약간의 수정을 했습니다.
저는 제가 작업하게 되는 데이터 테이블이 대부분 한 액세스에서 다음 주 액세스로 열의 순서가 동일하지 않다는 것을 알게 되었습니다. 따라서 요약할 열 목록을 줄여야 할 때 다음 코드를 사용합니다.
colNamesNotToUse = {"DATA", "DATE"};
colname = dt << get column names( string );
For( i = N Items( colName ), i >= 1, i--,
If( Contains( colNamesNotToUse, Uppercase( colName[i] ) ),
Remove From( colName, i, 1 )
)
);