我有一个带有一些相关垂直表的关系数据库。
我已经编写了一个查询,该查询可以为我提供所需的结果。结果显示在“ Result_Total”列中,并且此列中的每一行都是“材料数量”列与“零件数量”列的乘积(对于同一行)。
最后,我只需要两件事:
将“ 3000:DeviceID”(这是设备的ID),“ Material ID”(材料(与设备相关的材料的ID))和“ Result_Total”列保存并保存在表中”(该数字表示设备中提供了多少材料)。 (以使表格保持如图所示)
对于相同的设备,我有几种材料。所以我需要找到每个设备的材料数量,这是:
将“结果”列中所有具有相同材料ID,相同设备ID的值相加。 (图片中的小桌子)
我认为可以在同一查询中进行查询,但是我尝试在查询内部进行查询,但我无法
查询结果如下:(我已经隐藏了不必要的列)
和下面的大表是我所需要的(注意,结果将相同类别的材料ID汇总为设备的相同类别)。
答案 0 :(得分:0)
好的,在肖恩的指导下,我提出了解决方案。
1。要在表中保留查询结果:只需在查询前写:创建表TableNameResultsQuery AS
create table "3000Devices2" as select * from "3000Devices";
create table "3000DevicesExchanges2" as select * from "3000DevicesExchanges";
CREATE table RESULTADOS as
SELECT
"3000DevicesExchanges"."3000:DeviceID" as "Device ID",
.
.
"3000Devices".Name as "Device Name"
FROM
"3000DevicesExchanges"
INNER JOIN
"3000Devices" on "3000Devices".ID = "3000DevicesExchanges"."3000:DeviceID"
.
.
.
INNER JOIN
"0000Materials" on "0000Materials".ID = "1000PartsComposition"."0000:Material"
WHERE "3000DevicesExchanges"."3000:Devices" is not null;
DROP TABLE "3000Devices2";
DROP TABLE "3000DevicesExchanges2";
SELECT "Device ID", "Device Name", "Material ID", "Material Name", SUM(Result_Total) Quantity FROM RESULTADOS GROUP BY "Device ID", "Material ID";
3。要将查询结果导出为CSV:
sqlite> .open databasename.db
sqlite> .headers on
sqlite> .mode csv
sqlite> .output filename.csv
sqlite> select * from tbl1; (make it the query)
sqlite> .output stdout
非常感谢