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-個人IDの
fkidlvfk-土地レコードIDのfk
テーブルLV(土地レコードのテーブル)、サンプルレコードもあります。
idlv lvnazov katuzemie
1 1830 Plavecký Mikuláš
また、私はテーブル「parcela」を使用し、土地レコードの小包に関する情報をそこに保存します
pnazov rozloha idlvfk idkategoriafk typ
5432 692312 1 1 C
そしてテーブルカテゴリー
idkategoria meno
1 Lesné pozemky
必要なもの:このselectの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
(2番目の)クエリ出力は次のようになります
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
これは1つのクエリで可能ですか、それともフロントエンドで処理する必要がありますか?
テーブルとクエリの背景:
土地の記録にはいくつかの区画があります(すべての区画には独自のカテゴリがあります。たとえば、森林区画など)。人は土地記録の一部を所有しています(テーブルmajetokに保存されます。例:1/1000)。つまり、彼はその土地記録の各区画から1/1000を所有しているということです。カテゴリ(SUM(par.rozloha)* sum1 AS m2)ごとに彼が所有するエリア(パーセラテーブルの列 "rozloha")を選択したいと思います。したがって、その土地レコードでそのカテゴリのすべての区画の合計を数え、その人を所有する部分を掛ける必要があります。しかし、彼は1つの土地レコードで1/1000を所有し、2番目の土地レコード(別の土地レコード=別の区画)で3/3456を所有できるため、土地レコードごとに行う必要があり、最後のコードで確認できます。