6

エラー: AND の引数は boolean 型である必要があり、文字可変型ではありません

SELECT 
    partno, 
    count(manufacturer) 
FROM 
    components 
WHERE 
    partno IN (SELECT partno FROM productions 
               WHERE 
                    year = 2005
                AND attr is NULL
              ) 
GROUP BY partno
UNION
SELECT 
    partno, 
    count(manufacturer) 
FROM components 
WHERE 
    partno IN (SELECT partno FROM productions 
               WHERE 
                   year = 2005
               AND attr is NULL
              ) 
GROUP BY partno
) 
AND (
        partno NOT IN (SELECT partno FROM components
    )
); 

ユニオンの後の部分には、プロダクションに含まれていないコンポーネントからのすべての partno が含まれます (0 としてカウントする必要があります)。

4

1 に答える 1

4

ブラケットが 1 つ多すぎて ( の後attr IS NULL)、集約関数 ( count2 番目の部分の ) がありませんgroup by。これを意味しますか:

select partno, count(manufacturer) 
from components 
where partno in 
(
   select partno from productions where year=2005 and attr is NULL
) 
group by partno

UNION

select partno, count(manufacturer) 
from components 
where partno in 
(
    select partno from productions where year=2005 and attr is NULL
) 
AND partno not in (select partno from components)
group by partno; 
于 2012-10-02T07:38:23.147 に答える