2016-12-30 6 views
-1

このクエリーを実行するとエラーが発生します。エラーは、 'オペランドには1列しか含めるべきではありません'と述べています。サブクエリでオペランドはmysqlクエリーに1列のみ含める必要があります

SELECT 
tender_id, 
customer_code, 
contact_person, 
po_number, 

(SELECT t1.tender_id, t2.file_no, 
    CASE t1.tech_analyst 
    WHEN 'NULL or Empty' THEN t2.tech_analyst 
    ELSE t1.tech_analyst END AS tech_analyst 
FROM view_sales_report AS t1 
JOIN view_sales_report AS t2 
    ON (t2.file_no = t1.file_no AND t2.tech_analyst <> 'Null or Empty') LIMIT 1) as tech_analyst, 

view_sales_report.category 

FROM view_sales_report 
ORDER BY tender_id DESC 
+2

...あなたの結果を達成するために、このようなものを使用してみてください。あなたのロジックは間違っているようです。あなたは正確に何をしようとしていますか? – GurV

+0

このリンクをチェックすることができます:http://stackoverflow.com/questions/41390604/case-statement-with-where-condition-in-sql/ –

+0

IAMはmysqlクエリの中にCASE文を書くことを試みています。 –

答えて

0

複数の列が許可されていません

は、あなたがそのようなサブクエリで複数の列を選択することはできません

SELECT 
    T1.PrimaryKey, 
T1.SomeColumn, 
MySubQuery.Col1, 
MySubQuery.Col2, 
MySubQuery.Col3 
    From 
Table1 T1 
LEFT JOIN (SELECT TOP 1 Col1, Col2, Col3, Fkey FROM Table 2 ORDER BY Col1 DESC) AS MySubQuery ON T1.PrimaryKey = MySubQuery.Fkey 
+0

これはSQLサーバー構文(TOP)です。 – e4c5

関連する問題