-1
SELECT HR.name, (SELECT COUNT(*) WHERE Ord.status > 6), (SELECT COUNT(*) WHERE Ord.status < 6)
        FROM Ord
            JOIN Manager AS Mng ON Mng.person_id = Ord.manager_id
            JOIN Person AS HR ON HR.id = Mng.hr_id 
        GROUP BY HR.id

HRには彼が見つけたマネージャーがいます。

"CREATE TABLE Manager (person_id INTEGER PRIMARY KEY NOT NULL, hr_id INTEGER)"

HRごとに、彼のマネージャーが作成した注文status > 6と魔法使いが作成した注文の数を数えたいと思います。

上に書いたクエリは適切な結果を返しません。(しかし、いくつかを返します)。

4

1 に答える 1

0

あなたの説明は理解不能です。

あなたのクエリFROMには、サブクエリに句と相関関係があり>ません<=。おそらく次のようなものが必要です。

SELECT HR.name,
       (SELECT COUNT(*)
        FROM Ord
        WHERE Ord.manager_id IN (SELECT Mng.person_id
                                 FROM Manager as Mng
                                 WHERE Mng.hr_id = HR.id)
          AND Ord.status > 6),
       (SELECT COUNT(*)
        FROM Ord
        WHERE Ord.manager_id IN (SELECT Mng.person_id
                                 FROM Manager as Mng
                                 WHERE Mng.hr_id = HR.id)
          AND Ord.status <= 6),
FROM Person AS HR
GROUP BY HR.id
于 2013-05-08T11:49:30.567 に答える