我正在尝试自动创建JMP图表。我一直在使用以下指南: 从数据导入到2019年出版物的自动报告创建
我已经达到了从SQL查询创建表的程度。我不得不在表中添加一个新列,这是一个表达式。问题是我无法让脚本显示此计算列。当我右键单击“修改查询”时,它只显示基本查询而不是计算列。如何获取包含计算列的脚本?
“ 我不得不在表中添加一个新列,这是一个表达式。 “表达式是什么?添加新列的代码?
“ 我无法让脚本显示此计算列。 “在数据网格或列面板中显示?数据列是否隐藏?
“ 当我右键单击“修改查询”时,它只显示基本查询而不是计算列。 “是不是自动使用查询结果创建了修改查询表脚本?您是否尝试手动编辑或使用代码编辑?
“ 如何获取包含计算列的脚本? “您通常会将<< Get Script消息发送到任何对象,例如数据列或数据表。
你能分享你当前的脚本版本吗?
让我看看我是否可以回答你的问题。
1。计算的字段是Sum(OnTime)/ Sum(Total)。
2。这些是我采取的步骤。
- 通过查询生成器打开表
- 添加我需要的列,然后选择“运行查询”
- 我无法在Query Builder中添加我的计算字段,因为它会自动设置“分组依据”列,我无法取消选择它
- 它也不允许我手动编写查询
- 在出现的表格中,我可以根据表格中显示的计算添加新列,但仍然如此
- Modify Query ONLY仅显示创建表的原始脚本,而不是计算列的脚本
3。我会尝试修改脚本以添加计算列,但不知道语法是什么。以下是一些屏幕截图:


新的SQL查询(连接(“CONNECTION HERE”),QueryName(“ON_TIME_SPC”),Select(列(“ReleaseMonth”,“t1”,数字格式(“m / d / y”,“ - 1”,“NO”) ,“”)),列(“开启时间”,“t1”,别名(“时间总和”),SavedJMPName(“开启时间”),聚合(“总和”),JMP名称(“总和” -On-Time“,0)),列(”总计“,”t1“,别名(”Sum-Total“),SavedJMPName(”Total“),聚合(”Sum“),JMP名称(”Sum-Total“ “,0)),列(”阶段“,”t1“,分析类型(”标称“))),从(表(”ON_TIME_SPC“,模式(”dbo“),别名(”t1“))),分组依据(列(“ReleaseMonth”,“t1”,数字格式(“m / d / y”,“ - 1”,“NO”,“”)),列(“阶段”,“t1”)))
使用查询结果创建表脚本。它们之后不会捕获对数据表的任何更改,例如使用比率计算添加数据列。
我添加了代码来为您创建此列,并将其附加到Modify Query脚本的末尾。这是为了证明原则。
Names Default To Here( 1 );
dt = New SQL Query(
Connection( "CONNECTION HERE" ),
QueryName( "ON_TIME_SPC" ),
Select(
Column( "ReleaseMonth", "t1", Numeric Format( "m/d/y", "-1", "NO", "" ) ),
Column(
"On-Time",
"t1",
Alias( "Sum-On-Time" ),
SavedJMPName( "On-Time" ),
Aggregation( "Sum" ),
JMP Name( "Sum-On-Time", 0 )
),
Column(
"Total",
"t1",
Alias( "Sum-Total" ),
SavedJMPName( "Total" ),
Aggregation( "Sum" ),
JMP Name( "Sum-Total", 0 )
),
Column( "Phase", "t1", Analysis Type( "Nominal" ) )
),
From( Table( "ON_TIME_SPC", Schema( "dbo" ), Alias( "t1" ) ) ),
Group By(
Column( "ReleaseMonth", "t1", Numeric Format( "m/d/y", "-1", "NO", "" ) ),
Column( "Phase", "t1" )
)
);
dt << New Column( "OnTimePct",
Formula( :Name( "Sum-On-Time" ) / :Name( "Sum-Total" )
);
我在变量dt中保存对新数据表的引用,以便我可以发送消息。我发送<< New Column()消息来创建具有比率的列。