gpt4 book ai didi

选择语句中的sqlite foreach?

转载 作者:行者123 更新时间:2023-12-03 18:18:08 25 4
gpt4 key购买 nike

我遇到了 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

个人ID的idpodfk-fk
土地记录id的idlvfk-fk

还有表LV(土地记录表),样本记录:
idlv    lvnazov katuzemie
1 1830 Plavecký Mikuláš

我还使用了“parcela”表,我在其中存储了土地记录中有关地 block 的信息
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

这是否可以在一个查询中进行,还是我需要在前端处理它?

表格和查询背景:

土地记录中有一些地 block (每个地 block 都有自己的类别,例如森林地 block 等)。人拥有土地记录的一部分(保存在 majetok 表中,例如:1/1000)。这意味着他拥有该土地记录中每个地 block 的 1/1000。我想为每个类别(SUM(par.rozloha)*sum1 AS m2)选择他拥有的区域(parcela 表中的“rozloha”列)。因此,我们必须计算该土地记录上该类别中所有地 block 的总和,并乘以拥有该人的部分。但是他可以在一个土地记录上拥有 1/1000,在第二个土地记录上拥有 3/3456(另一个土地记录=另一个地 block ),所以我们必须为每个土地记录做,总结你可以在最后的代码中看到。

最佳答案

对所有四个表的联接将没有正确数量的总和记录数。

您可以做的是使用子查询代替 View :

SELECT SUM(step2.area_sum),
step2.meno
FROM (SELECT SUM(rozloha) * sum(podield_sum) AS area_sum,
par.idlvfk,
meno
FROM parcela par
JOIN kategorie kat ON par.idkategoriafk = kat.idkategoria
JOIN (SELECT SUM(podield) AS podield_sum,
idlvfk
FROM majetok
GROUP BY idlvfk) AS ps ON ps.idlvfk = par.idlvfk
GROUP BY idlvfk,
meno) AS step2
GROUP BY step2.meno

我用 SQL Fiddle 上的示例数据进行了测试: http://sqlfiddle.com/#!2/626e6/9

关于选择语句中的sqlite foreach?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12576148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com