sql问题,请高手解答

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:02:15
我为了将表中的同一字段的满足两个不同条件的数据分开,分别AS了两个数据程序如下:
SELECT TOP 100 PERCENT ab.customer_number, cm.customer_description, ab.input_date,
(SELECT CASE WHEN APIA_balance.out_balance < 0 THEN APIA_balance.out_balance
ELSE NULL END
FROM APIA_balance) AS Expr1,
(SELECT CASE WHEN APIA_balance.out_balance >= 0 THEN APIA_balance.out_balance
ELSE NULL END
FROM APIA_balance) AS Expr2
FROM dbo.APIA_balance ab LEFT OUTER JOIN
(SELECT customer_description, customer_id
FROM dbo.customer_main) cm ON ab.customer_number = cm.customer_id
但是当我运行的时候,SQL报错误:“子查询返回值多于一个。当子查询跟随在=,!=,<,<=,>,>=之后,或子查询用作表达式时,这种情况是不允许的”
请问各位高手,我该如何修改??
2楼的高手,我改成您说的ab.customer_number IN cm.customer_id ,这样还是不行。。。显示语法错误。还是谢谢你热情的回答。

SELECT TOP 100 PERCENT ab.customer_number, cm.customer_description, ab.input_date,
CASE WHEN ab.out_balance < 0 THEN ab.out_balance
ELSE NULL END AS Expr1,
CASE WHEN ab.out_balance >= 0 THEN ab.out_balance
ELSE NULL END AS Expr2
FROM dbo.APIA_balance ab LEFT OUTER JOIN
(SELECT customer_description, customer_id
FROM dbo.customer_main) cm ON ab.customer_number = cm.customer_id
select 里面带有的select不止一个值就不能识别究竟该是哪个值,不要子select就可以了

子查询返回了多个结果不能用=,!=,<,<=,>,>= 这几个 换IN() 或NOT IN() 想只要一个的话就在子查询中加 TOP 1

SELECT TOP 100 PERCENT ab.customer_number,
cm.customer_description,
ab.input_date,
(SELECT CASE
WHEN APIA_balance.out_balance < 0 THEN
APIA_balance.out_balance
ELSE
NULL
END
FROM APIA_balance) AS Expr1,
(SELECT CASE
WHE