2017-03-08 14 views
0

複数の選択肢を1つのクエリにリンクしようとしています。複数の選択文を1つのクエリで複数選択した場合

SELECT (
    SELECT COUNT(*) 
    FROM user_table 
    ) AS tot_user, 
    (
    SELECT COUNT(*) 
    FROM cat_table 
    ) AS tot_cat, 
    (
    SELECT COUNT(*) 
    FROM course_table 
    ) AS tot_course 

しかし、私の問題は、各選択肢から複数のオプションを取得しようとしていることです。

SELECT (
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated', 
) AS 'No. of Private Cases Generated', 
(
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Web Cases Generated' 
) AS 'No. of Web Cases Generated' 

私はエラーになっ保つ - 私は1つのセレクタの下に3つの異なった値をリンクしようとしていますので、私はこれを読んだものから

「#1241オペランドが1列(複数可)を含める必要がありますが」であるIやりたいことはありません。

このコードは最後に問題があります。

) AS 'No. of Web Cases Generated' 

私はこれを解決しようとしましたが、明らかにそれを正しくする専門知識が不足しています。

) "" AS Company, 
    "" AS Username, 
    "" AS 'No. of Private Cases Generated', 
    AS 'No. of Web Cases Generated' 

これは、どのセレクタにどの値を割り当てるかわからないので、これは機能しません。

ご協力いただければ幸いです。あなたが実際に単一の列に複数の列の値をマージしようとしているので、

+1

サブクエリに 'FROM'句がありません。 – Siyual

+0

これは、完全な照会が非常に長いため、選択値の単なる例です。クエリはテストされ、自分の上で動作しますが、私はそれらを一緒に好きになる必要があります – troggy69

答えて

1

はい、それは

不可能な

(SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated', 
) AS 'No. of Private Cases Generated', 
正しい行動だあなたが探しているものを考えて、むしろ

SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated' 
FROM some_table --first part of query 

UNION   -- combine the data 

SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Web Cases Generated' 
FROM some_other_table; -- second part of query 

ようUNIONですあなたのコメントに応じて、JOINを実行してから

select xx.Company, xx.Username,xx.'No. of Private Cases Generated', 
xxx.Company1, xxx.Username1, xxx.'No. of Web Cases Generated' 
FROM (
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Private Cases Generated', 
FROM some_table ) xx 

JOIN (
SELECT c.name AS Company, 
CONCAT(UPPER(u.forename),' ', u.surname) AS Username, 
count(c.case) AS 'No. of Web Cases Generated' 
FROM some_other_table) xxx 
ON xx.Company = xxx.Company; 
+0

マルチプル値を複数の列にリンクする方法はありますか? – troggy69

+0

@ troggy69の場合は、answerで編集してください。 – Rahul

+0

組合はプライベートとウェブを別々の価値として戻しますか、それともそれをマージしますか? – troggy69

関連する問題