我有2张桌子。
业务部门
ID unit
1 AR
2 AP
3 AT HOME
4 CSS
5 EIT
6 SUPPORT
asset_item
ID allocation_unit item_type
1 AR Laptop
2 AP Laptop
3 CSS Laptop
4 EIT Laptop
5 EIT Laptop
6 EIT Laptop
我希望能够将数据提取到一个表中,在其中我可以计算出所有业务部门中有多少台笔记本电脑
这是我想展示的结果
Unit Laptop
AR 1
AP 1
AT HOME 0
CSS 1
EIT 3
SUPPORT 0
提前谢谢
答案 0 :(得分:0)
您可以从angular.module('app',[])
.controller('mainCtrl', function($scope){
var vm = this;
$scope.obj = {
"schedule": [{
"day": "Monday",
"start": "15:00:00"
}, {
"day": "Tuesday",
"start": "16:30:00"
}]
}
for(var i = 0; i < $scope.obj.schedule.length; i++) {
$scope.obj.schedule[i].start = stringToDate($scope.obj.schedule[i].start);
}
function stringToDate(stringDate) {
var date = new Date();
var splitDate = stringDate.split(':');
date.setHours(splitDate[0], splitDate[1], splitDate[2]);
return date.toLocaleTimeString();
}
})
表到<html ng-app="app">
<body>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-controller="mainCtrl as vm">
<div ng-repeat="day in obj.schedule">
<input type="time" min="00:00:00" max="23:59:00" placeholder="" ng-model="day.start"/>
</div>
</div>
</body>
</html>
相应地执行LEFT JOIN
。 business_unit
表应该是最左边的表,因为您要考虑所有asset_item
,即使business_unit
中没有匹配的行。
然后我们可以unit
并在asset_item
函数上使用条件聚合:
GROUP BY
如果您只关心COUNT()
计数值,那么我们可以将条件放在SELECT
bu.unit,
COUNT(CASE WHEN ai.item_type = 'Laptop' THEN 1 END) AS Laptop
FROM business_unit bu
LEFT JOIN asset_item ai
ON ai.allocation_unit = bu.unit
GROUP BY bu.unit
本身上,而不必使用Laptop
表达式。
LEFT JOIN