如何解决sqlite从多个表创建视图
有3个表:
Table A
aNo | aName | aCity
A1 | Alex | Ohio
A2 | Nick | LA
A3 | Sam | Seatle
A4 | Rick | Sydney
.
.
.
Table B
bNo | aNo | bType
B1 | A1 | big
B2 | A1 | small
B3 | A1 | small
B1 | A4 | Medium
B2 | A4 | tiny
B3 | A4 | Big
.
.
Table C
aNo | cDate | bNo
A1 | 2011 | B2
A2 | 2006 | B2
A3 | 1993 | B1
A4 | 2018 | B3
A4 | 2013 | B3
A4 | 2002 | B3
.
.
我需要创建一个视图,向我显示aName,bType和SUM(仅TableB.aNo [A1,A4])
它应该向我显示以下内容:
aName | bType | A1 and A4 quantity
Alex | Big | 1
Alex | Medium| Null
Alex | small | 2
Alex | tiny | Null
Rick | Big | 1
Rick | Medium| 1
Rick | small | Null
Rick | Tiny | 1
我尝试过:
CREATE VIEW v_A1A4
AS
SELECT
A.aName,B.bType,sum(C.aNo) AS Rooms_Total
FROM
A
INNER JOIN Room ON B.aNo = A.aNo
INNER JOIN C ON C.aNo = A.aNo
WHERE C.aNo = 'A1' AND C.aNo = 'A4';
SELECT * FROM v_A1A4;
但这显示了新的VIEW表。但所有值均为NULL。
aName | bType | A1 and A4 quantity
NULL | NULL | NULL
我需要显示值A1和A2的数量。
我该怎么办?
解决方法
如果我理解正确,您只想填写表a
和b
之间的缺失值。我不确定应该在c
表中做什么,但似乎并不需要。
select a.ano,t.type,count(b.ano)
from a cross join
(select distinct type from b) t left join
b
on a.ano = b.ano and b.type = t.type
group by a.ano,t.type;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。