尝试从状态为100的每个商店中选择总交货,有些情况下一个修理编号为2 100(状态交付)。我怎样才能删除所有重复的选择,甚至不需要一个手段,如果它的重复应该从计数取消修复。请仔细检查我的代码,这是我现在所能达到的目标。
SELECT UL.StoreName, COUNT(DISTINCT JT.REPAIRNO) AS TotalDelivery
FROM DataDetails AS UL LEFT OUTER JOIN
JOBTRACKING AS JT ON UL.storeID = JT.store_code
WHERE (CAST(JT.created_Date AS date)='2017-03-08')
AND JT.JOBSTATUS=100
GROUP BY UL.StoreName
例如
Name TotalDelivery
ABC 4
XYZ 4
这一个来自
RepairNo Store Status CreatedDate
1000 ABC 100 3/8/2017
1001 ABC 100 3/8/2017
1001 ABC 100 3/8/2017
1008 ABC 100 3/8/2017
1009 ABC 100 3/8/2017
1011 XYZ 100 3/8/2017
1011 XYZ 100 3/8/2017
1013 XYZ 100 3/8/2017
1014 XYZ 100 3/8/2017
1015 XYZ 100 3/8/2017
1015 XYZ 100 3/8/2017
需要如下结果
Name TotalDelivery
ABC 3
XYZ 2
它将返回所有行并删除重复但它将从重复返回一个,我也想删除那个。只有那一行没有任何重复。提前致谢。
答案 0 :(得分:1)
如果您需要非重复结果,则需要使用"/users/:username"
子句将其过滤掉。请尝试以下查询。
更新
router.get("/users/:id", async ctx => {
//ctx.request.id
if (!isNaN(ctx.request.id)) // it IS a number {
//do something with user ID
} else {
//do something with username
}
});
测试脚本
SUB QUERY
结果
SELECT UL.StoreName, COUNT(1) AS TotalDelivery
FROM DataDetails AS UL
LEFT OUTER JOIN JOBTRACKING AS JT
ON UL.storeID = JT.store_code
WHERE CAST(JT.created_Date AS date)='2017-03-08'
AND JT.JOBSTATUS=100
AND JT.REPAIRNO IN (SELECT REPAIRNO from JOBTRACKING j WHERE j.store_code = UL.storeID GROUP BY j.REPAIRNO HAVING COUNT(1) = 1)
GROUP BY UL.StoreName, UL.storeID
答案 1 :(得分:-1)
我需要更多详细信息,但据我了解,首先应准备总选择数据列表结果。例如,在内部选择中,您可以对数据进行分组并删除所有并发或冗余数据,或者您可以应用where条件然后使用外部选择和GROUP BY UL.StoreName分组,然后您将获得真正的答案。不要使用明显的!