Frage : Update-Frage mit Subquery

Hallo Experten!

In meine Updateaussage, die, ich „str_gewertet“ auf das Resultat des Subquery für jede Aufzeichnung einstellen möchte in der tbl_matrix_intermediate_result = z.pk

Is es sogar möglich, eine Spalte einer inneren Frage als Bezeichner für die Aufzeichnungen der aktualisiert zu werden Tabelle zu benutzen?

Many Dank für Ihre Hilfe!

Brgds,

Seb
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
update tbl_matrix_intermediate_result
      Satz
        (str_gewertet)
        = 
(auserwähltes gewertete_ba von (
mit w wie (cnt_tbl_matrix_intermediate PK, lng_baumart, str_ba_lang, das str_ba_kat, int_prozent, str_gewertet, str_lrt_class vorwählen vom tbl_matrix_intermediate_result
          wo str_ba_kat innen („H“, „N“, „B“, „P ")
          und lng_gebiet =: p_cnt_gebiet
          und str_lrt_class =: p_str_lrt
          und int_wg =: p_wg
          und int_be =: p_be
          und Markierungsfahne nicht in (1.2.3.4.5.6.7.8.9.10)
          und eval_type = 1 
         )

(auserwähltes PK, das str_ba_lang, prozent, lng_baumart, psumme, Fall, wenn lng_baumart = 33 und str_gewertet = „Ja“ und prozent nicht und ungültig ist (vorwählen Zählimpuls (*) von w ls, in dem w.lng_baumart innen (28.31) und w.int_prozent nicht ungültig ist), = 0 dann „Ja“ 
wenn lng_baumart = 53 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (28.29.30.31.32.33) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart = 54 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (13.14.15) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“ 
wenn lng_baumart = 72 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (22.23.25.26.27) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“ 
wenn lng_baumart = 74 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (5.6) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“ 
wenn lng_baumart = 79 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (28.29.30.31.32) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart nicht innen (33.53.54.72.74.79) und prozent ist nicht ungültig und str_gewertet = „Ja“ dann „Ja“
sonst „Nein“
Ende als gewertete_ba
von (PK, lng_baumart, str_ba_lang, str_ba_kat ba_kat, str_gewertet, int_prozent prozent, die Summe vorwählen (int_prozent) über (Fach durch str_lrt_class) psumme von W)))z)
wo cnt_matrix_intermediate_result = z.pk

Antwort : Update-Frage mit Subquery

O.K. können Sie dieses versuchen:

Update tbl_matrix_intermediate_result m1
      Satz
        (m1.str_gewertet)
        =
(auserwähltes gewertete_ba von (
mit w wie (cnt_tbl_matrix_intermediate PK, lng_baumart, str_ba_lang, das str_ba_kat, int_prozent, str_gewertet, str_lrt_class vorwählen
          vom tbl_matrix_intermediate_result      
          wo str_ba_kat innen („H“, „N“, „B“, „P ")
          und lng_gebiet =: p_cnt_gebiet          
          und str_lrt_class =: p_str_lrt          
          und int_wg =: p_wg          
          und int_be =: p_be
          und Markierungsfahne nicht in (1.2.3.4.5.6.7.8.9.10)      
          und eval_type = 1)
(auserwähltes PK, str_ba_lang, prozent, lng_baumart, psumme,
 Fall, wenn lng_baumart = 33 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (28.31) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart = 53 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (28.29.30.31.32.33) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart = 54 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (13.14.15) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart = 72 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (22.23.25.26.27) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart = 74 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (5.6) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart = 79 und str_gewertet = „Ja“ und prozent nicht ungültig ist und (Zählimpuls (*) von w vorwählen, wo w.lng_baumart innen (28.29.30.31.32) und w.int_prozent ist nicht ungültig), = 0 dann „Ja“
wenn lng_baumart nicht innen (33.53.54.72.74.79) und prozent ist nicht ungültig und str_gewertet = „Ja“ dann „Ja“
sonst „Nein“
Ende als gewertete_ba
von (PK, lng_baumart, str_ba_lang, str_ba_kat ba_kat, str_gewertet, int_prozent prozent, die Summe vorwählen (int_prozent) über (Fach durch str_lrt_class) psumme von W)))z
wo m1.cnt_matrix_intermediate_result = z.pk)
wo existiert (1 vorwählen
          von tbl_matrix_intermediate_result xx
          wo xx.str_ba_kat innen („H“, „N“, „B“, „P ")
          und xx.lng_gebiet =: p_cnt_gebiet
          und xx.str_lrt_class =: p_str_lrt
          und xx.int_wg =: p_wg
          und xx.int_be =: p_be
          und xx.flag nicht in (1.2.3.4.5.6.7.8.9.10)
          und xx.eval_type = 1
          und xx.cnt_tbl_matrix_intermediate = m1.cnt_tbl_matrix_intermediate);

Ich hinzugefügt wo Bedingung dem Updatebefehl außerdem damit nur jene Aufzeichnungen, die modernisierten Willen erhalten müssen aktualisiert iert und verschob auch diese Bedingung, die Störung zum Innere gab, damit sie arbeiten kann.

Sie prüfen wohl genug, um zu sehen, wenn das ist, weil ich dieses nicht an meinem Ende wegen keiner Tabellen/Daten prüfen kann.

Danke,
Weitere Lösungen  
 
programming4us programming4us