您能否建议发生语法错误?
当我在Oracle中运行此代码时,我没有错,但在Microsoft SQL Server中,我发现了与语法相关的错误"附近的地方"
提前感谢您的帮助
select
a.orderlinenumber, b.categorytype
from
(select *
from
(select *
from Anton
where OrderLineNumber in (select OrderLineNumber
from Anton
group by OrderLineNumber
having COUNT (CategoryType) = 2) )
where CategoryType = 'Money back') a
right join
(select *
from
(select *
from Anton
where OrderLineNumber in (select OrderLineNumber
from Anton
group by OrderLineNumber
having COUNT (CategoryType) = 2))
where
CategoryType <> 'Money back') b on a.OrderLineNumber = b.OrderLineNumber;
答案 0 :(得分:0)
如果您希望SELECT OrderLineNumber, MIN(CategoryType), MAX(CategoryType)
FROM Anton
GROUP BY OrderLineNumber
HAVING COUNT(*) = 2 AND
SUM(CASE WHEN CategoryType = 'Moneyback' THEN 1 ELSE 0 END) = 1;
中的行包含两行,其中一行是body{
background: red;
background: -webkit-linear-gradient(left top, red, yellow);
background: -o-linear-gradient(bottom right, red, yellow);
background: -moz-linear-gradient(bottom right, red, yellow);
background: linear-gradient(to bottom right, red, yellow);
}
,那么您可以执行以下操作:
<svg width="400" height="300">
<defs>
<mask id="hole">
<rect width="100%" height="100%" fill="white"/>
<rect x="200" y="100" width="100" height="100"/>
</mask>
</defs>
<image width="400" height="300"
xlink:href="http://lorempixel.com/400/300/sports/"
mask="url(#hole)"/>
</svg>
这将在一行中返回两个类别。
答案 1 :(得分:0)
您缺少所选的列,并且您还应该同时为两个子查询添加别名:
select a.orderlinenumber,
b.categorytype
from
(
select [COLUMNS HERE]
from (
SELECT [COLUMNS HERE]
FROM Anton
WHERE OrderLineNumber IN (SELECT OrderLineNumber FROM Anton GROUP BY OrderLineNumber HAVING COUNT (CategoryType)=2)
) AS ab
where CategoryType = 'Money back'
) AS a
right join
(
select [COLUMNS HERE]
from (
SELECT [COLUMNS HERE]
FROM Anton
WHERE OrderLineNumber IN (SELECT OrderLineNumber FROM Anton GROUP BY OrderLineNumber HAVING COUNT (CategoryType)=2)
) AS ac
where CategoryType <> 'Money back'
) AS b on a.OrderLineNumber=b.OrderLineNumber;
将[COLUMNS HERE]替换为您要选择的列。
答案 2 :(得分:0)
这在我尝试代码时起作用,它需要第一个FROM的名称。
select a.orderlinenumber,b.categorytype from
(
select* from (SELECT* FROM Anton
WHERE OrderLineNumber IN (SELECT OrderLineNumber FROM Anton
GROUP BY OrderLineNumber HAVING COUNT (CategoryType)=2) ) AS a
where CategoryType = 'Money back')a
right join
(
select * from (SELECT * FROM Anton
WHERE OrderLineNumber IN (SELECT OrderLineNumber FROM Anton
GROUP BY OrderLineNumber HAVING COUNT (CategoryType)=2) ) AS b
where CategoryType <> 'Money back')b
on a.OrderLineNumber=b.OrderLineNumber;