从两个要在 C# 中显示的条件返回 SQL 值

本文关键字:显示 条件 返回 SQL 两个 | 更新日期: 2023-09-27 18:37:13

我有一个boolean field扫描的表。

我想在 C# WinForm 中显示扫描完成和挂起的计数。

我正在使用SQL中的存储过程。

select count(1),sum(pages),count(distinct custId) from TableA where scanning=0 --Pending
select count(1),sum(pages),count(distinct custId) from TableA where scanning=1 --Done

我是否需要在 SQL 中创建两个存储过程,或者是否有办法从单个存储过程中获取结果。

从两个要在 C# 中显示的条件返回 SQL 值

SELECT
    PendingCnt = COUNT_BIG(CASE WHEN scanning = 0 THEN 1 END),
    PendingSum = ISNULL(SUM(CASE WHEN scanning = 0 THEN pages END), 0),
    PendingCustID = COUNT_BIG(DISTINCT CASE WHEN scanning = 0 THEN custId END),
    DoneCnt = COUNT_BIG(CASE WHEN scanning = 1 THEN 1 END),
    DoneSum = ISNULL(SUM(CASE WHEN scanning = 1 THEN pages END), 0),
    DoneCustID = COUNT_BIG(DISTINCT CASE WHEN scanning = 1 THEN custId END)
FROM TableA