如何从SQLite查询中提取并保留数据?

时间:2019-06-28 09:10:49

标签: sqlite

我有一个带有一些相关垂直表的关系数据库。

我已经编写了一个查询,该查询可以为我提供所需的结果。结果显示在“ Result_Total”列中,并且此列中的每一行都是“材料数量”列与“零件数量”列的乘积(对于同一行)。

最后,我只需要两件事:

  1. 将“ 3000:DeviceID”(这是设备的ID),“ Material ID”(材料(与设备相关的材料的ID))和“ Result_Total”列保存并保存在表中”(该数字表示设备中提供了多少材料)。 (以使表格保持如图所示)

  2. 对于相同的设备,我有几种材料。所以我需要找到每个设备的材料数量,这是:

将“结果”列中所有具有相同材料ID,相同设备ID的值相加。 (图片中的小桌子)

我认为可以在同一查询中进行查询,但是我尝试在查询内部进行查询,但我无法

查询结果如下:(我已经隐藏了不必要的列)

和下面的大表是我所需要的(注意,结果将相同类别的材料ID汇总为设备的相同类别)。

1 个答案:

答案 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";
    我使用 GROUP BY
  1. 管理该查询(表)的信息
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

非常感谢