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的数量。

我该怎么办?

解决方法

如果我理解正确,您只想填写表ab之间的缺失值。我不确定应该在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;

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...