如何解决根据项目
嗨,请帮我摆上这样的桌子:
po date bmi_code qty
6800083953 2020-08-12 TA23D7GANV6 2198.27
6800083953 2020-08-12 TA40Y3LANC2 394.98
6800083953 2020-08-13 TA23D7GANV6 650.74
6800083953 2020-08-13 TA40Y3LANC2 626.52
6800083952 2020-08-14 TA23D7GANV6 424.944
6800083953 2020-08-14 TA40Y3LANC2 626.52
我想要这样的数据, 该怎么做,
bmi_code 2020-08-12 2020-08-13 2020-08-14
TA23D7GANV6 2198.27 650.74 424.944
TA40Y3LANC2 394.98 626.52 626.52
这是我的代码
$itemlist= ProductionOutput::select('bmi_code',function($query){
$query->DB::raw('SUM(qty) as qty')->groupBy('date');
})->groupBy('bmi_code')->get();
解决方法
要首先对数据进行数据透视转换,您将需要查询按const arrayFromObj = Object.keys(obj).map(value => {
return { value: obj[value] }
})
和// Custom getter example
val friendlyDescription get(): String {
val isNeighborhood = district != null
var description = if (isNeighborhood) "Neighborhood" else "City"
description += " in"
if (isNeighborhood) {
description += " $city,"
}
province?.let {
if (it.isNotEmpty()) {
description += " $it,"
}
}
description += " $country"
return description
}
print(myLocation.friendlyDescription) // "Neighborhood in Denver,Colorado,United States"
// Custom setter example
enum class SearchResultType {
HISTORY,SAVED,BASIC
}
private lateinit var resultTypeString: String
var resultType: SearchResultType
get() {
return enumValueOf(resultTypeString)
}
set(value) {
resultTypeString = value.toString()
}
result.resultType = SearchResultType.HISTORY
print(result.resultTypeString) // "HISTORY"
分组的记录
bmi_code
date
可能会有类似的数据
$productionResults = ProductionOutput::select('bmi_code','date',DB::raw('SUM(qty) as qty'))
->groupBy(['bmi_code','date'])
->get();
在这里,我们将为每个不同的$productionResults
值添加数组,其中将为每个[
['bmi_code' => 'TA23D7GANV6','date' => '2020-08-12','qty'=> 2198.27],['bmi_code' => 'TA23D7GANV6','date' => '2020-08-13','qty'=> 650.74],'date' => '2020-08-14','qty'=> 424.944],['bmi_code' => 'TA40Y3LANC2','qty'=> 394.98],'qty'=> 626.52],]
包含bmi_code
键和日期键,例如
bmi_code
我们还将收集标题(日期不同)
bmi_code
现在,我们将遍历数据以显示最终结果集
[bmi_code_value] => [[bmi_code => bmi_code_value,date1 => qty1,date2 => qty2,date3 => qty3,//....]]
输出
$pivotData = [];
$headers = ['BMI'];
foreach($productionResults as $key => $productionResult){
if( !isset($pivotData[$productionResult['bmi_code']]) ){
$pivotData[$productionResult['bmi_code']] = array();
$pivotData[$productionResult['bmi_code']]['bmi_code'] = $productionResult['bmi_code'];
}
$pivotData[$productionResult['bmi_code']][$productionResult['date']] = $productionResult['qty'];
if (!in_array($productionResult['date'],$headers)) {
$headers[] = $productionResult['date'];
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。