我正在写作业,但找不出"NOT IN“功能的正确语法。
该数据库是一个小型保险数据库(承运商、会员、雇主、计划),用于完成此任务。我应该“列出所有运营商和他们拥有的套餐数量。(使用右连接或左连接)。列出carrier_id、车名和套餐数量。”
这就是我现在所写的:
SELECT carrier_id, carname, count(*) AS NoPlans
FROM carriers RIGHT JOIN plans
ON carriers.carrier_id = plans.carrierid;当我尝试运行它时,它会抛出“不是单组函数”错误,但这是因为我认为它正在寻找WHERE子句,而我不知道条件应该是什么。
运营表结构:
Name Null Type
------------------------------ -------- -----------
CARRIER_ID NOT NULL CHAR(4)
CARNAME CHAR(35)
CARADDRESS CHAR(50)
CARCITY CHAR(30)
CARSTCODE CHAR(2)
CARZIP CHAR(10)
CARPHONE CHAR(10)
CARWEBSITE CHAR(255)
CARCONTACTFIRSTNAME CHAR(35)
CARCONTACTLASTNAME CHAR(35)
CARCONTACTEMAIL CHAR(255)
11 rows selectedPlans表结构:
Name Null Type
------------------------------ -------- -------------
PLANID NOT NULL NUMBER
PLNDESCRIPTION CHAR(35)
PLNCOST NUMBER(8,2)
CARRIERID CHAR(4)
4 rows selected发布于 2010-11-11 03:22:32
SELECT carrier_id, carname, count(*) AS NoPlans
FROM carriers RIGHT JOIN plans
ON carriers.carrier_id = plans.carrierid
GROUP BY carrier_id, carname;发布于 2010-11-11 03:21:09
count需要group by子句。
你也应该考虑你的加入。它可能并没有完全按照您的预期来做。
发布于 2010-11-11 03:23:38
SELECT c.carrier_id, c.carname, count(1) as no_plans
FROM carriers c RIGHT JOIN plans p
ON c.carrier_id = p.carrierid
group by c.carrier_id , c.carnamehttps://stackoverflow.com/questions/4148187
复制相似问题