子查询中的SQL Select

达里尔

嗨,我的查询如下,并在其中包含一个子查询:

ALTER PROCEDURE [dbo].[POBalance] @PONumber NVARCHAR(50) 
AS
BEGIN
    SELECT CASE 
            WHEN X.STATUS = 'False'
                THEN (  SELECT A.Description
                            ,C.qty AS POqty
                            ,B.Qty AS PDQty
                            ,CASE 
                                WHEN A.partialflag = 'false'
                                    THEN '0'
                                ELSE A.qty
                                END AS Balance
                            ,A.Unit
                            ,A.Unitprice
                            ,A.Partialflag
                        FROM tblPOdetails AS A
                        INNER JOIN tblPDdetails AS B ON A.id = B.id
                        INNER JOIN tblpodetailshistory AS C ON A.id = C.id
                        WHERE A.PONo = @PONumber
                        )
            ELSE (  SELECT A.Description
                        ,C.qty AS POqty
                        ,B.Qty AS PDQty
                        ,C.qty AS Balance
                        ,A.Unit
                        ,A.Unitprice
                        ,A.Partialflag
                    FROM tblPOdetails AS A
                    INNER JOIN tblPDdetails AS B ON A.id = B.id
                    INNER JOIN tblpodetailshistory AS C ON A.id = C.id
                    WHERE A.PONo = @PONumber)
            END
    FROM tblPOHeader AS X
    WHERE x.PONo = @PONumber
END

我得到的错误是:

如果未使用EXISTS引入子查询,则只能在选择列表中指定一个表达式。

我的查询有什么问题..看来我的子查询还可以。

提前致谢

拉杜·格奥尔基(Radu Gheorghiu)

您真的在寻找这个吗?

ALTER PROCEDURE [dbo].[POBalance] @PONumber NVARCHAR(50)
AS
BEGIN
    DECLARE @Status NVARCHAR(MAX)

    SELECT @Status = X.STATUS
    FROM tblPOHeader AS X WHEREx.PONo = @PONumber

    IF @Status = 'False'
    BEGIN
        SELECT A.Description
            ,C.qty AS POqty
            ,B.Qty AS PDQty
            ,CASE 
                WHEN A.partialflag = 'false'
                    THEN '0'
                ELSE A.qty
                END AS Balance
            ,A.Unit
            ,A.Unitprice
            ,A.Partialflag
        FROM tblPOdetails AS A
        INNER JOIN tblPDdetails AS B ON A.id = B.id
        INNER JOIN tblpodetailshistory AS C ON A.id = C.id
        WHERE A.PONo = @PONumber
    END
    ELSE
    BEGIN
        SELECT A.Description
            ,C.qty AS POqty
            ,B.Qty AS PDQty
            ,C.qty AS Balance
            ,A.Unit
            ,A.Unitprice
            ,A.Partialflag
        FROM tblPOdetails AS A
        INNER JOIN tblPDdetails AS B ON A.id = B.id
        INNER JOIN tblpodetailshistory AS C ON A.id = C.id
        WHERE A.PONo = @PONumber
    END
END

这段代码将存储然后检查和的值,@Status并基于该值是否False等于0来返回查询之一的结果集。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Select Max 在子查询中

来自分类Dev

如何将Select中的子查询转换为SQL查询到.NET Core查询

来自分类Dev

SQL SELECT DISTINCT子查询错误:1241

来自分类Dev

SQL Select子查询和联接

来自分类Dev

SQL Select忽略子查询的结果

来自分类Dev

SQL语法:不带from子句的select作为select(subselect)中的子查询

来自分类Dev

查找重复项的子查询的select部分中未使用的SQL Select列

来自分类Dev

在SELECT中的IF语句SQL查询

来自分类Dev

SQL查询-SUM中的SELECT

来自分类Dev

从SQL中的SELECT查询更新

来自分类Dev

SQL查询-SUM中的SELECT

来自分类Dev

子查询未在Select中聚合

来自分类Dev

SELECT子查询中的IF / CASE语句

来自分类Dev

MySQL,如何在SELECT查询中引用子查询字段

来自分类Dev

sql中的select查询中的case语句

来自分类Dev

我们可以在 SQL 中的 SELECT 中使用 CASE 子查询来选择表中的列吗?

来自分类Dev

sql select 3个表中的查询

来自分类Dev

SELECT查询中的SQL和临时行

来自分类Dev

修改SQL SELECT查询中的值

来自分类Dev

DB2 中的 SQL SELECT 查询

来自分类Dev

LARAVAL 5.4 中的 SQL SELECT 查询 UPPER

来自分类Dev

Select中的SQL相关子查询

来自分类Dev

如何在SQL语句的Select子句中引用子查询

来自分类Dev

SQL Select-子查询具有多行

来自分类Dev

SQL-带有子查询的SELECT语句

来自分类Dev

带有 SELECT AS 子查询的 Oracle SQL UNION

来自分类Dev

将MONTH传递给子查询时,SQL select子查询将永远运行

来自分类Dev

如何在SQL上层SELECT的WHERE条件下使用子查询中的自定义字段

来自分类Dev

select语句中的子查询如何在Oracle中工作