Sql 将两个查询合并到一个用例中-当sum上出现varchar错误时
目前的结果是这样的Sql 将两个查询合并到一个用例中-当sum上出现varchar错误时,sql,sql-server,join,Sql,Sql Server,Join,目前的结果是这样的 SELECT LOCA_SHORT_CODE AS OUTLET_CD, COUNT (TTD_LOC_ID) AS TOTAL_ADM FROM #tempTrxnTicDetail WITH(NOLOCK) WHERE TTD_BUS_DATE BETWEEN @StartDate AND @EndDate GROUP BY LOCA_SHORT_CODE, TTD_LOC_ID ORDER BY OUTLET_CD ASC SELECT COUNT (TTD_POS
SELECT LOCA_SHORT_CODE AS OUTLET_CD, COUNT (TTD_LOC_ID) AS TOTAL_ADM
FROM #tempTrxnTicDetail WITH(NOLOCK)
WHERE TTD_BUS_DATE BETWEEN @StartDate AND @EndDate
GROUP BY LOCA_SHORT_CODE, TTD_LOC_ID
ORDER BY OUTLET_CD ASC
SELECT COUNT (TTD_POS_NO) AS EKIOSK_ADM
FROM #tempTrxnTicDetail WITH(NOLOCK)
WHERE TTD_POS_NO LIKE 'KIOSK%'
GROUP BY LOCA_SHORT_CODE, TTD_LOC_ID, TTD_POS_NO
使用条件聚合:
OUTLET_CD | TOTAL_ADM
1. 1U2 | 974
2. ABM | 1184 and so on intended result is
OUTLET_CD | TOTAL_ADM | KIOSK_ADM
1. 1U2 | 974 | 254
2. ABM | 1184 | 30
注意,我用(NOLOCK)删除了
。除非您真正了解它的功能,否则不应该使用它。语法显然是SQL Server,因此我更改了标记。再见,戈登,谢谢您的回答!它神奇地工作了,呵呵,我是在生产服务器上做的,因此我被告知大部分时间使用nolock来防止增加服务器流量的机会
SELECT LOCA_SHORT_CODE AS OUTLET_CD, COUNT(TTD_LOC_ID) AS TOTAL_ADM,
SUM(CASE WHEN TTD_POS_NO LIKE 'KIOSK%' THEN 1 ELSE 0 END) as TOTAL_KIOSK
FROM #tempTrxnTicDetail
WHERE TTD_BUS_DATE BETWEEN @StartDate AND @EndDate
GROUP BY LOCA_SHORT_CODE, TTD_LOC_ID
ORDER BY OUTLET_CD ASC;