我需要计算2个零售商之间的加权价格指数(按零售商1的营业额加权)。我需要使用不同的Item组合计算这个索引(不同的前n个)。
加权的基本方法是:
SUM(price1 / price2 *营业额)/ SUM(营业额)
我使用以下Query语句计算它:
Excel::load("storage/app/notes.csv", function($reader) {
$loopclient = -1; //Or proper initial value
$reader->each(function($row) use (&$loopclient) { //Loop through row by row
if (strlen($row->client_id) == 5) {
$loopclient = $row->client_id;
$this->line('client'.$loopclient);
} else {
//Our note should have client ID of loopclient
$this->info($loopclient.": ".$row->client_id);
}
});
})->get();
根据业务需求,我通常需要用不同的产品组计算这个指数 - 只有私有标签,只有蔬菜或 - 最简单的例子 - 仅适用于TOP n产品(基于2016年第一季度的营业额)。 / p>
我想在Access中使用带有几个参数的VBA创建一个简单的表单。
我有包含项目代码描述的词典表(仅选择啤酒类别)和TOP 500排名表。我做了一个查询,它有效 - 它加入了前500个表(它只包含需要代码的代码列。我可以手动编写TOP代码的数量(用***突出显示字符串)。
SELECT week, SUM(price1/price2 * turnover)/SUM(turnover) AS [PriceIndex]
FROM Table1
GROUP BY week;
现在的主要问题。如何制作插图形式?
我已经开始了:
SELECT week, SUM(price1/price2 * turnover)/SUM(turnover) AS [PriceIndex]
FROM Table1 AS F INNER JOIN TopTable AS T ON F.code=T.code
WHERE F.code IN (
***SELECT TOP 500 code
FROM TopTable)
GROUP BY week;
我只需要使用表单变量top_num执行SQL语句。
答案 0 :(得分:0)
因此,如果您想在表单中显示查询结果,则必须在子表单中进行查询。
创建一个新表单,将其命名为Subform1或您喜欢的任何其他内容。单击表单左上角的方块,然后打开属性窗口。在“格式”,“默认显示”下,选择“数据表”。
您的查询返回2列,因此您需要在表单上添加2个文本框
您必须将文本框绑定到查询返回的列名:选择文本框并带上属性窗口,在“数据”选项卡下第一个字段是“控制源”,在那里指定查询列名称:week
用于一个文本框,PriceIndex
用于其他文本框
您的子表单已准备就绪,保存并关闭。
在设计模式下打开主窗体并向其添加SubForm控件。创建控件时,向导会询问您的控件数据来源,选择SubForm1
Private Sub Command_Click()
Dim top_num As Long
Dim SQL As String
top_num = Top_number.Value
sSQL = _
"SELECT week, SUM(price1/price2 * turnover)/SUM(turnover) AS [PriceIndex]" & _
"FROM Table1 AS F INNER JOIN TopTable AS T ON F.code=T.code" & _
"WHERE F.code IN ( " & _
"***SELECT TOP " & top_num & " code" & _
"FROM TopTable)" & _
"GROUP BY week;"
' Add This :
Me!subform1.Form.RecordSource = sSQL
End Sub
你已经完成了