【问题标题】:Providing a column name for the resultant table为结果表提供列名
【发布时间】:2015-03-05 00:41:44
【问题描述】:

我有以下查询来提取所需格式的数据

select
(
    select COUNT(serialNumber) as LOTQty
    from MobileData
    where mobileName = @mobileName and model = @model and LOTQty = @lotQty
)
,(
    select COUNT(serialNumber) as FailedQty
    from MobileData
    where mobileName = @mobileName and model = @model and LOTQty = @lotQty and PreScan = 'FAIL'
)

但是当我执行查询时,它肯定会给出所需的结果,但它显示的不是列名 "LotQty" 和 "FailedQty" 它显示 (No Column Name ) 和 (无列名)

我也尝试如下修改上述查询,但结果仍然相同

select
(
    select [LotQty] = COUNT(serialNumber)
    ...
)
,(
    select [FailedQty] = COUNT(serialNumber) 
    ...
)

感谢任何帮助。我正在使用 sql server 2008

【问题讨论】:

    标签: sql sql-server sql-server-2008 select alias


    【解决方案1】:

    您可以使用 ALIAS 给列名称,也可以使用一个查询而不是两个子查询来获取两个计数。

    试试这个:

    SELECT COUNT(serialNumber) AS LOTQty, 
           SUM(CASE WHEN PreScan = 'FAIL' THEN 1 ELSE 0 END) AS FailedQty
    FROM MobileData
    WHERE mobileName = @mobileName AND model = @model AND LOTQty = @lotQty;
    

    【讨论】:

    • @Saharsh Shah 感谢这种方法非常方便且性能有效。但是作为一个新手,我无法理解它的复杂性。你愿意向我解释一下吗?如果我有多个条件,如 preScan、midScan 和 postScan,我将如何构建我的查询?
    • 好的,如果我想要 preScan、midScan 和 postScan 等 3 个条件怎么办?我继续写两行,例如 Sum(CASE WHEN MidScan = 'FAIL' THEN 1 ELSE 0 END) as FailedmidQty Sum(CASE WHEN PostScan = 'FAIL' THEN 1 ELSE 0 END) as FailedPostQty
    【解决方案2】:

    别名必须在子查询之外

    select
    (
        select COUNT(serialNumber) 
        from MobileData
        where mobileName = @mobileName and model = @model and LOTQty = @lotQty
    ) as LOTQty
    ,(
        select COUNT(serialNumber)
        from MobileData
        where mobileName = @mobileName and model = @model and LOTQty = @lotQty and PreScan = 'FAIL'
    )  as FailedQty
    

    【讨论】:

    • 我怎么可能错过这么小的东西?无论如何,感谢您节省了我的一天:)
    • 这里出现了一个问题。现在,当我想在我的代码中访问该数据时,我可以使用列名“LotQty”和“FailedQty”直接访问它吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多