2017-08-09 21 views
-2

構文ミスが発生する場所を教えてください。Microsoft SQL Serverでエラーが発生する

私は、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; 
+1

あなたは 'select'の後で' from'の前に何かが必要です。あなたは、サンプルデータと希望の結果とあなたが何をしたいのかの説明とを別の質問をすることを検討するかもしれません。おそらくもっと簡単な方法があります。 –

+0

SUBQUERY SELECTに列名がありません – theDbGuy

答えて

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; 

選択したい列の[HERE COLUMNS]を交換してください。

0

「場所の近く」構文で接続エラーをキャッチこれはreturます

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; 

:あなたは'Moneyback'そのうちの1つは2つの行を持ってantonの行を、望むなら、あなたはこのような何かを行うことができますnは1行の2つのカテゴリです。

0

これはコードを試したときに機能しました。最初のFROMの名前が必要でした。

関連する問題