我遇到了 SQLite 选择问题。
有表格“kategorie”、“lv”、“majetok”、“parcela”。
每个人都有关于他在“majetok”表中拥有什么的信息。样本记录:
id idpodfk idlvfk podiel podield cislozlv datum1 datum2
1 31 1 1/10000 0,0001 789 16. 9. 2012 16. 9. 2012
idpodfk-fk 人 id
idlvfk-fk 土地记录 id
还有表LV(土地记录表),样本记录:
idlv lvnazov katuzemie
1 1830 Plavecký Mikuláš
我还使用了“parcela”表,我在其中存储了土地记录中有关地块的信息
pnazov rozloha idlvfk idkategoriafk typ
5432 692312 1 1 C
和表类别
idkategoria meno
1 Lesné pozemky
我需要什么:此选择中的 foreach 记录
SELECT SUM(podield) AS sum1, idlvfk
FROM majetok a
WHERE idpodfk = 1
GROUP BY idlvfk
我需要选择这个
SELECT SUM(par.rozloha)*sum1 AS m2, kat.meno --sum1 from statement above
FROM Parcela par
INNER JOIN kategorie kat ON par.IDkategoriaFK = kat.IDkategoria
WHERE par.IDLVFK = 1 --IDLVFK from statement above
GROUP BY kat.meno
(第二个)查询输出应如下所示
m2 kat.meno
123.23 Lesne pozemky --FOR FIRST IDLVFK
324.52 Ostatne pozemky --FOR FIRST IDLVFK
235 Pasienky --FOR FIRST IDLVFK
144.23 Lesne pozemky --FOR NEXT IDLVFK
543.52 Ostatne pozemky --FOR NEXT IDLVFK
756 Pasienky --FOR NEXT IDLVFK
.
.
.
然后我需要按 kat.meno 分组,因此最终输出应如下所示:
m2 kat.meno
267,46 Lesne pozemky
868,04 Ostatne pozemky
991 Pasienky
. --other kat.meno if there is
. --other kat.meno if there is
这是否可以在一个查询中进行,还是我需要在前端处理它?
表格和查询背景:
土地记录中有一些地块(每个地块都有自己的类别,例如森林地块等)。人拥有土地记录的一部分(保存在 majetok 表中,例如:1/1000)。这意味着他拥有该土地记录中每个地块的 1/1000。我想为每个类别(SUM(par.rozloha)*sum1 AS m2)选择他拥有的区域(parcela 表中的“rozloha”列)。因此,我们必须计算该土地记录上该类别中所有地块的总和,并乘以拥有该人的部分。但是他可以在一个土地记录上拥有 1/1000,在第二个土地记录上拥有 3/3456(另一个土地记录=另一个地块),所以我们必须为每个土地记录做,总结你可以在最后的代码中看到。