PostgreSQL рдореЗрдВ FIAS рд╣реЛрдореНрд╕

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ FIAS рдкрддреЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PostgreSQL рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд╛рдардХреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдкреИрджрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдпрд╣ PostggSQL рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рднрд░реА рд╣реБрдИ FIAS рдШрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PL / pgSQL рдореЗрдВ рд╕рдорд╛рди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред


рд▓реЗрдЦ рдХреА рдкрд╣рд▓реА рдЫрдорд╛рд╣реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рджреВрд╕рд░реЗ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб, рд╕рд╛рде рд╣реА FIAS рдШрд░ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕рд╛рде рд╣реА CSV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдирд╛ред рдЙрди рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдЧреНрд░рдВрдереЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рддреБрд░рдВрдд рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред

рдпрд╣ рд▓реЗрдЦ "PostgreSQL рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ FIAS рдкрддреЗ" ( рд╢реБрд░реБрдЖрдд , рдирд┐рд░рдВрддрд░рддрд╛ 1 , рдирд┐рд░рдВрддрд░рддрд╛ 2 , рд╕рдорд╛рдкреНрдд ) рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рд╕реЗ рдирд┐рдХрдЯрддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдШрд░ рдореЗрдВ рдкрд╛рд░рд┐рд╡рд╛рд░рд┐рдХ рдкреЗрдбрд╝


рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

F рдлрд╝рдВрдХреНрд╢рди рдХреЛ stf_Houses_AddressObjectTree ('42301ab8-9ead-4f8e-8281-e64f2769a254') рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪреА рдЖрдПрдЧреАред


рддрд╛рд▓рд┐рдХрд╛ 1. рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдоред



рдХрд░реАрдм рд╕реЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рддрддреНрд╡ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ ( HOUSEGUID ) тАЬdред 1, bldgред 2, рдкреАред 26 тАЭ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╣ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рд╣реБрдП:


  • рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рддреАрди рдореВрд▓ рд░рд┐рдХреЙрд░реНрдб: рдХреНрд╖реЗрддреНрд░, рд╢рд╣рд░ рдФрд░ рд╕рдбрд╝рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ;
  • рдордХрд╛рди рдирдВрдмрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рддреАрди рд░рд┐рдХреЙрд░реНрдб: рдордХрд╛рди рдирдВрдмрд░, рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдирдВрдмрд░ рдФрд░ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдирдВрдмрд░ред

рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ - рд░рд┐рдХреЙрд░реНрдб (рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐) рдХреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рди рдХреЗрд╡рд▓ рдШрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░рд┐рдХреЙрд░реНрдб рдХреА рд╡рдВрд╢рд╛рд╡рд▓реА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдб рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкреВрд░рд╛ рдкрд╛рда рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ fstf_Houses_AddressObjectTree ред


рд╢реБрд░реВ рд╕реЗ рд╣реА


рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ FIAS рд╣рд╛рдЙрд╕ рдЯреЗрдмрд▓ рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреИрд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕ рд╕реЗрдХреНрд╢рди рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
FIAS рдШрд░ ( HOUSES ) FIAS ( ADDROBJ ) рдХреЗ рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЪреНрдЪреЗ рдХреА рд╕реВрдЪреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдШрд░ рд╕реВрдЪреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ AOGUID рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рд╕реЗ рдПрдХ FIAS рдкрддрд╛ рдкреИрджрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рдЧрд▓реА рдФрд░ рдХрд┐рд╕ рдЗрд▓рд╛рдХреЗ рдореЗрдВ рдШрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЖрдкрдХреЛ HOUSES рд░рд┐рдХреЙрд░реНрдб рдХреЗ AOGUID рдорд╛рди рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рди рд╕реВрдЪреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ ADDROBJ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдзрд┐рдд рд░рд┐рдХреЙрд░реНрдб рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдШрд░реЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЙрдирдХреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЗрдВ рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рддрдВрддреНрд░ рдХреА рдмрд╛рд╣рд░реА рд╕рд╛рджрдЧреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдиреЗ HOUSES рдкрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рдпрд╛ред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ AOGUID рджреНрд╡рд╛рд░рд╛ рдШрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред


рджреВрд╕рд░реЗ, FIAS рд╕реВрдЪреА рдореЗрдВ рдордХрд╛рди рд╕рдВрдЦреНрдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ: рдордХрд╛рди рдирдВрдмрд░, рднрд╡рди рд╕рдВрдЦреНрдпрд╛, рднрд╡рди рд╕рдВрдЦреНрдпрд╛ред


рддреАрд╕рд░рд╛, рдШрд░ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд╣рдореЗрд╢рд╛ рдЧрд╛рдБрд╡ рдХреА рдЧрд▓реА рдХреЗ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред


рд▓реЗрдХрд┐рди, рдкрд╣рд▓реА рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред

FIAS рдореЗрдВ рдордХрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдкрд░ рдФрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдкрдиреЗ рдЖрдк рдХреЛ 4 рддрд╛рд▓рд┐рдХрд╛рдУрдВ (DBF рдлрд╝рд╛рдЗрд▓реЛрдВ) рддрдХ рд╕реАрдорд┐рдд рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:




  • ADDROBJ - рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреА рд╕реВрдЪреА;
  • рдШрд░реЛрдВ - рдШрд░реЛрдВ рдХреА рд╕реВрдЪреА;
  • рд╕реНрдЯреНрд░реИрдЯрд╕ - рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛;
  • ESTSTAT - рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреА рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред

ADDROBJ рдкрд░ рдкрд┐рдЫрд▓реЗ рдкреНрд░рдХрд╛рд╢рди, "PostgreSQL рдореЗрдВ FIAS рдкрддреЗ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА , рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА, рдШрд░реЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рддрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рддрд╛рд▓рд┐рдХрд╛ 2. рдШрд░ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ "рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ рдХреНрд╖реЗрддреНрд░, рддреИрдорд┐рд░ рдбреЛрд▓рдЧрди-рдиреЗрдиреЗрддреНрд╕реНрдХреА рдЬрд┐рд▓рд╛, рдбреБрдбрд┐рдВрдХрд╛, рд╕реЗрдВрдЯред рдбреБрдбрд┐рдВрд╕реНрдХрд╛рдпрд╛, 1




рдЬреИрд╕рд╛ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдШрд░ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИрдВред рдЕрд╡рдзрд┐ рдХреА рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдХреЗ рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб, рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рдЕрдм рддрдХ, рд╡рд░реНрддрдорд╛рди рдШрд░ рд░рд┐рдХреЙрд░реНрдб 06.06.2079 рдХреА рддрд╛рд░реАрдЦ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВред рдШрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдХреЙрд░реНрдб рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреА рдЕрд╡рдзрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐рдпрд╛рдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИрдВред


FIAS рдШрд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдШрд░ рдХреЗ рдкрд┐рдЫрд▓реЗ рдФрд░ рдЕрдЧрд▓реЗ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдШрд░ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрд╣рд░реЗ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдХреНрд░рдо рдШрдЯрддреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдЕрд╡рдзрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рддрд╛рд░реАрдЦ рд╣реЛрддреА рд╣реИ, рдХреНрд░рдорд╢рдГ рдПрдВрдбрдбреЗрдЯ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдбреЗрдЯ ред



SELECT * FROM fias_Houses h WHERE h.HOUSEGUID='2fd64ecd-4b4b-4fc8-bd15-4a4a2f310b21' ORDER BY h.ENDDATE DESC,h.STARTDATE DESC; 

рдЪрд┐рддреНрд░ рдХреЛ рджреЗрдЦ рдЪреМрдХрд╕ рдкрд╛рдардХред 1, рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдЦреБрдж рд╕реЗ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛ рдерд╛: рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреА рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХреЗрдВ рдХреНрдпреЛрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╣реИрдВ? FIAS рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА 10 рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрди рджреЛрдиреЛрдВ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ


рдЬрд╡рд╛рдм рдмрд╣реБрдд рд╕реЗ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд░реЗрдЧрд╛ - "рдПрдлрдЖрдИрдПрдПрд╕ рддрд░реНрдХ" рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рдШрд░ рдХрд╛ рдкрддрд╛ рд╕рдбрд╝рдХ рдХреЗ рдкрддреЗ, рдШрд░, рднрд╡рди рдФрд░ рднрд╡рди рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рд╢рдмреНрдж "FIAS рддрд░реНрдХ" рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдШреАрдп рдХрд░ рд╕реЗрд╡рд╛ рдХреЗ рдПрдХ рдХрд░реНрдордЪрд╛рд░реА рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдореЗрд░реЗ рдкреНрд░рд╢реНрди рдореЗрдВ рдХрд┐ рдХреНрд░рд╛рд╕реНрдирд╛рдпрд╛рд░реНрд╕реНрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдШрд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдШрд░реЛрдВ рдХреЗ 250 рд╕реЗ рдЕрдзрд┐рдХ рдпреБрдЧреНрдорд┐рдд рдкрддреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕реА рдЙрддреНрддрд░ рдиреЗ рдХрд╣рд╛ рдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдореВрд▓реНрдпреЛрдВ AOGUID, HOUSENUM, BUILDNUM, STRUCNUM, STRSTATUS, ESTSTATUS рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред





рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд▓рд╛рдХреЗ, рд╕рдбрд╝рдХ, рдШрд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд╛рдирдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рднреА рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:


  • "рдХрдмреНрдЬрд╝рд╛" рдпрд╛ "рдШрд░ рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡" рд╣реИ;
  • рдЗрд╕ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ;
  • рдЖрджрд┐



рдпрд╣ рдХреИрд╕реЗ рдирдХрд▓реА рдкрддреЗ рдХреЗ рд╕рд╛рде FIAS рдШрд░реЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рд╕реЗ рдПрдХ рдирдореВрдирд╛ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдПрдХ рд╣реА рдкрддрд╛ рд╣реИ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рднрд╡рди рдФрд░ рдЙрд╕рдХреЗ рдиреАрдЪреЗ рдХреА рднреВрдорд┐; рдПрдХ рдорд╛рд▓рд┐рдХ рдХреЗ рд▓рд┐рдП рдШрд░, рдЧреЗрд░рд╛рдЬ, рд╕реНрдирд╛рдирдШрд░ред рдЗрди рд╕рдмрдХрд╛ рдкрддрд╛ рдПрдХ рд╣реА рд╣реИред рд▓реЗрдХрд┐рди FIAS рдПрдХ рдПрдбреНрд░реЗрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИ, рдЕрд░реНрдерд╛рдд рдкрддреЛрдВ рдХреА рд╕реВрдЪреАред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рдирд╛ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ рдХрд┐ рдкрддреЗ рдЗрд╕рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдВрдЧреЗ, рди рдХрд┐ рдЗрдорд╛рд░рддреЗрдВ, рд╕рдВрд░рдЪрдирд╛рдПрдВ, рд╕рдВрд░рдЪрдирд╛рдПрдВред


рдпрд╛рдиреА рдордХрд╛рди рдХреЗ рдкрддреЗ рдХреА рд╕реВрдЪреА рд╕реЗ рдПрдлрдЖрдИрдПрдПрд╕ рдордХрд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рдЬрдореАрди рдХреА рдЗрдорд╛рд░рддреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реБрдИред рдФрд░ FIAS рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рд╣рд░ рдХреЛрдИ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рдорд╛рди рдПрдХ SELECT рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкрддреЗ рд╡рд╛рд▓реЗ рдШрд░реЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдлрд╝рдВрдХреНрд╢рди fsfn_Houses_TreeActualName рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдХреЙрд▓рдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ fias_StructureStatus (STRSTAT рдХрд╛ рдПрдирд╛рд▓реЙрдЧ) рдФрд░ fias_EstateStatus (ESTSTAT рдХреЗ рдЕрдиреБрд░реВрдк) рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдЪрд┐рд╣реНрдирд┐рдд рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдХрдмреНрдЬреЗ рдХреЗ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдХреЛрдб рдкрд░ рднреА рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред




рдСрдкрд░реЗрдЯрд░ рд╕реНрд░реЛрдд рдХреЛрдб
 SELECT fsfn_Houses_TreeActualName(h.AOGUID,h.HOUSEGUID),h.HOUSEGUID,str.StructureStatusName,est.EstateStatusName FROM fias_Houses h INNER JOIN (SELECT AOGUID,HOUSENUM,BUILDNUM,STRUCNUM,COUNT(*) FROM fias_Houses h WHERE EndDate =TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS') GROUP BY AOGUID,HOUSENUM,BUILDNUM,STRUCNUM HAVING COUNT(*)>1) hg ON h.AOGUID=hg.AOGUID AND h.HOUSENUM=hg.HOUSENUM AND COALESCE(h.BUILDNUM,'')=COALESCE(hg.BUILDNUM,'') AND COALESCE(h.STRUCNUM,'')=COALESCE(hg.STRUCNUM,'') LEFT OUTER JOIN fias_StructureStatus str ON h.STRSTATUS=str.StructureStatusID LEFT OUTER JOIN fias_EstateStatus est ON h.ESTSTATUS=est.EstateStatusID WHERE h.EndDate =TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS') ORDER BY h.AOGUID,h.HOUSENUM,h.BUILDNUM,h.STRUCNUM,h.STRSTATUS,h.ESTSTATUS; 


рдФрд░ рдЕрдВрдд рдореЗрдВ, FIAS рд╣реЛрдо рд╕реВрдЪреА рдХреА рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ред рдЗрд╕ рд╕реВрдЪреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдШрд░ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдПрдХ рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╕реВрдЪреА рдореЗрдВ рдРрд╕реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реЛрддрд╛ рд╣реИред рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВред рддреЛ рдореВрд▓ рддрддреНрд╡ рдХреНрд╖реЗрддреНрд░ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ рдХреНрд╖реЗрддреНрд░), рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рдПрдХ рдХреНрд╖реЗрддреНрд░реАрдп рд╕реНрд╡рд╛рдпрддреНрддрддрд╛ рдХрд╛ рд╕реНрд╡рд╛рдпрддреНрдд рдУрдХреНрд░рдЧ, рдХреНрд╖реЗрддреНрд░ рдпрд╛ рд╢рд╣рд░ред рдФрд░ рдЗрд╕реА рддрд░рд╣ред (рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, "PostgreSQL рдореЗрдВ FIAS рдкрддреЗ" рджреЗрдЦреЗрдВ)ред


рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╣рд╛рдЙрд╕ рд░рд┐рдХреЙрд░реНрдб рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рд╕реНрддрд░ рдкрд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдПрдХ рддрддреНрд╡ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЬрд┐рд▓реЗ рдпрд╛ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдИ рдШрд░ рдирд╣реАрдВ рдереЗред рдлрд┐рд░ рднреА, рд╕рднреА рдШрд░ рдЧрд╛рдБрд╡ рдХреА рд╕рдбрд╝рдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ:


  • FIAS рдШрд░реЛрдВ рдХрд╛ 98% рдЖрдмрд╛рджреА рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рдбрд╝рдХреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ;
  • 1.2% рдШрд░ - рдмрд╛рдЧрд╡рд╛рдиреА рд╕рдВрдШреЛрдВ рдореЗрдВ рд╕рдбрд╝рдХреЛрдВ рдХреЗ рд╕рд╛рде;
  • 0.3% рдШрд░ рдмрд╕реНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИрдВ;
  • рдЕрдиреНрдп рдкрддреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде 0.5% рдШрд░ред


рдЕрдВрдЬреАрд░ред 2ред

рдорд╛рд▓рд┐рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдШрд░ рдХреЗ рдкрддреЗ рдХрд╛ рдкреНрд░рд╕рд╛рд░ (рдПрдлрдЖрдИрдПрдПрд╕ рдмрдирд╛рдо рдирдХреНрд╢рд╛)


рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рдкреЗрдбрд╝ рдХреА рдЕрд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред (рдЗрдЧреЛрд░ рд▓рд┐рдпреЛрдирд┐рджреЛрд╡рд┐рдЪ рдЯрд┐рдореЛрд╢рдЪреЗрдирдХреЛрд╡, рдЬреАрдЖрдИрдПрд╕ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ, рдРрдЧрд┐рдпреЛ рдПрд▓рдПрд▓рд╕реА, рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдореЗрд░рд╛ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред)


рдЙрдкрд░реЛрдХреНрдд рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдШрд░ рдореЗрдВ рдПрдХ рд╣реА рдкрддреЗ рдкрд░ рдХрд┐рддрдиреЗ рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВред рдХрд░ рдирд┐рд░реАрдХреНрд╖рдХ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рди рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдЬреА рдШрд░ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдЖрд╕рдкрд╛рд╕ рдХреА рдЗрдорд╛рд░рддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕рдордЭрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рдЧреЗрд░рд╛рдЬ, рдПрдХ рдЦрд▓рд┐рд╣рд╛рди, рдЖрджрд┐ред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдШрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдорд╛рд░рдд (рдШрд░) рдХреЗ рд▓рд┐рдП рдХрдИ рдЗрдорд╛рд░рддреЗрдВ (fias_Houses) рдХреЗ рд╡рд┐рдкрд░реАрдд рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред





рдЗрд╕ рддрд╕реНрд╡реАрд░ рдХреЛ рджреЗрдЦрд┐рдПред рдмрд╛рдИрдВ рдУрд░ рдЧрд╛рдБрд╡ рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИ рдЬрд╣рд╛рдБ рджреЛ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЗ рдордХрд╛рди рд╕реНрдерд┐рдд рд╣реИрдВред рдпреЗ рджреЛ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░реЛрдВ рд╡рд╛рд▓реЗ рд╕рд╛рдзрд╛рд░рдг рдПрдХ рдордВрдЬрд┐рд▓рд╛ рдордХрд╛рди рд╣реИрдВред рдПрдХ рдкрд░рд┐рд╡рд╛рд░ рджрд╛рдИрдВ рдУрд░ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдмрд╛рдИрдВ рдУрд░ред рдЙрдиреНрд╣реЗрдВ рдЕрднреА рднреА рджреЛ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯ рдХреЗ рдШрд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред


рдЕрдм рджрд╛рдИрдВ рдУрд░ рдХреА рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред рдЗрд╕рдореЗрдВ, рджреЛ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ рд╣рд░ рдШрд░ 3 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╛рдиреА FIAS рдШрд░реЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрд░ ("dред 1") рдФрд░ рдШрд░ рдХреЗ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдкрддреЗ ("dред 1/1", "dред 1/2") рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рдорд╛рд▓рд┐рдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрд┐рдЦрд╛рддреА рд╣реИред


рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


Fstf_Houses_AddressObjectTree рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ: рдЪрд╛рд░ рдпрд╛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рдеред рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рд╛рдЙрд╕ рдЖрдЗрдбреЗрдВрдЯрд┐рдлрд╝рд╛рдпрд░ ( рд╣рд╛рдЙрд╕рдЧреЗрдб ) рдФрд░ рд░рд┐рдХреЙрд░реНрдб ( рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐) рдХреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдкреНрд░реЗрд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЪрд╛рд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкрддрд╛-рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ ( AOGUID ) рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ ( CurrStatus ) рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред




рдСрдкрд░реЗрдЯрд░ рд╕реНрд░реЛрдд рдХреЛрдб
 SELECT INTO v_AOGUID,v_CurrStatus h.AOGUID,CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE ao.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE ao.aoguid = iao.aoguid) ELSE 0 END FROM fias_Houses h INNER JOIN fias_AddressObjects ao ON h.AOGUID=ao.AOGUID WHERE h.HOUSEGUID=a_HOUSEGUID AND h.ENDDATE= COALESCE(a_ENDDATE, TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS')) ORDER BY h.ENDDATE DESC; 


рдХрдо рдорд╛рдкрджрдВрдбреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдкрддрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдШрд░ рдХреА рдореЗрдЬ (рдПрдл ias_ouse ) рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдореВрд▓реНрдп ( CurrStatus ) рдХреА рдЧрдгрдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИ:


  • рдпрджрд┐ рдПрдбреНрд░реЗрд╕-рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЗ рдЗрддрд┐рд╣рд╛рд╕ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА CurrStatus рдлрд╝реАрд▓реНрдб рдореЗрдВ 0 рдирд╣реАрдВ рд╣реИ, рддреЛ v_CurrStatus рдЪрд░ рдХреЛ рдЗрд╕ рдПрдбреНрд░реЗрд╕-рдПрд▓реАрдореЗрдВрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдлрд╝реАрд▓реНрдб рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ;
  • рдЕрдиреНрдпрдерд╛, рдЗрд╕ рдЪрд░ рдХреЛ рдорд╛рди 0 рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ fstf_AddressObjects_AddressObjectTree рдХрд╣рддрд╛ рд╣реИ, рдЬреЛ рдШрд░ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЖрдк PostgreSQL рдореЗрдВ FIAS рдПрдбреНрд░реЗрд╕ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЗ рдкреЗрдбрд┐рдЧреНрд░реА рдЕрдиреБрднрд╛рдЧ рдореЗрдВ fstf_AddressObjects_AddressObjectTree рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ

ред

рдлрд┐рд░ рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдШрд░, рднрд╡рди, рд╕рдВрд░рдЪрдирд╛ (рддрд╛рд▓рд┐рдХрд╛ 1 рджреЗрдЦреЗрдВ) рдХреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЧреИрд░-рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдШрд░, рднрд╡рди рдФрд░ рд╕рдВрд░рдЪрдирд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред


рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдлрд╝реЛрдХрд╕рд┐рдВрдЧ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ, рдлрд╝реАрд▓реНрдб рдХреЛрдб рд╕реНрддрд░ ( AOLevel ), рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ ( CurrStatus ) рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рд╕реНрдерд┐рддрд┐ ( ActStatus ) рдХреЗ рдорд╛рди рдХреГрддреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред


рд╕рджрди рдХреЗ рд╕реНрддрд░ (рднрд╡рди, рд╕рдВрд░рдЪрдирд╛) рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣рдореЗрд╢рд╛ 8 рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдПрдлрдЖрдИрдПрдПрд╕ рд╕реВрдЪрдирд╛ рд╕реЗ рд╕реВрдЪрдирд╛ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрд░ рд╕рдВрджрд░реНрдн рдкреБрд╕реНрддрдХ "рдкрддрд╛ рдпреЛрдЧреНрдп рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╕реНрддрд░" рджреЗрдЦреЗрдВред


рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рд╕реНрдерд┐рддрд┐ 1 рдкрд░ рд╕реЗрдЯ рд╣реИ рдпрджрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ ( рдПрдВрдбрдбреЗрдЯ ) 06.06.2079 рд╣реИ , рдФрд░ 0 рдЕрдиреНрдпрдерд╛ред


CurrStatus рдлрд╝реАрд▓реНрдб рдорд╛рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░рд┐рдХреЙрд░реНрдб рдХреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рддрддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд╡рд░реНрддрдорд╛рди рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдЗрд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ 0 рдХрд╛ рдорд╛рди рд╣реИ, рдФрд░ рд╕рднреА рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░рд┐рдХреЙрд░реНрдб рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдХреНрд░рдо рдореЗрдВ рдЧрд┐рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ - "1" рдпрд╣ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рдЬреЛ рд╕рдордп рдореЗрдВ рдЗрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ - "2", рдЖрджрд┐ред CurrStatus рдлрд╝реАрд▓реНрдб рдХреЛ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдХреНрд░рдо PostgreSQL рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди FIAS рдкрддреЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред




рд╕реНрдкрд╛рдпрд▓рд░ рд╣реЗрдбрд┐рдВрдЧ
 SELECT h.AOGUID, h.HOUSEGUID, h.HOUSENUM, h.BUILDNUM, h.STRUCNUM, h.ENDDATE, CASE WHEN COALESCE(h.ENDDATE, TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS')) =TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS') THEN 0 ELSE RANK() OVER (PARTITION BY h.AOGUID, h.HOUSEGUID ORDER BY h.ENDDATE ASC) END AS HouseCurrStatus, CASE WHEN COALESCE (h.ENDDATE, TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS')) =TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS') THEN 1 ELSE 0 END AS HouseActStatus FROM fias_Houses h INNER JOIN fias_AddressObjects ao ON h.AOGUID=ao.AOGUID WHERE h.AOGUID=a_AOGUID AND h.HOUSEGUID=a_HOUSEGUID AND h.ENDDATE= COALESCE(a_ENDDATE, TO_TIMESTAMP('2079-06-06 00:00:00','YYYY-MM-DD HH24:MI:SS')) ORDER BY h.ENDDATE DESC; 


рдкреВрд░рд╛ рдШрд░ рдХрд╛ рдкрддрд╛


Fsfn_Houses_TreeActualName рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЕрдкрдиреЗ рд╕рднреА рдкреВрд░реНрд╡рдЬреЛрдВ рдХреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬреБрдбрд╝реЗ рдШрд░ рдирдВрдмрд░ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рд░рд┐рд╡рд╛рд░рд┐рдХ рдЯреНрд░реА рдлрд╝рдВрдХреНрд╢рди (fstf_Houses_AddressObjectTree) рдХреЛ рдорд╛рдиреЛрдВ рдХреА рдирд┐рдореНрди рд╕реВрдЪреА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рджреЗрдВред


рддрд╛рд▓рд┐рдХрд╛ 4. рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо fstf_Houses_AddressObjectTree ('0c0d670f-097c-4e1d-bcac-9e9b22fb1b99')



рдлрд┐рд░ fsfn_Houses_TreeActualName ('0c0d670f-097c-4e1d-bcac-9e9b22fb1b99') рд▓реМрдЯ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: " рд╢реНрд░реА рдХреНрд░рд╛рд╕реНрдирд╛рдпрд╛рд░реНрд╕реНрдХ, 34A рд╕реЗрдВрдЯ рд▓рд╛рдЬреЛ, рдмрд▓реНрдбред 6, рдкреАред 17 тАЭред


рдлрд╝рдВрдХреНрд╢рди fsfn_Houses_TreeActualName рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдПрдЧреНрд░реАрдЧреЗрдЯ рдлрд╝рдВрдХреНрд╢рди STRING_AGG рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдШрд░ рдкрд░ рдПрдХ рдкрд╛рд░рд┐рд╡рд╛рд░рд┐рдХ рдкреЗрдбрд╝ рджреЗрддрд╛ рд╣реИред


рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ - рдорд╛рд╕реНрдХ рдХреА рдПрдХ рд╕рд░рдгреА ( a_MaskArray ), рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╕рднреА рддрддреНрд╡ рдирд╛рдореЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрди рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рддрд╛рд▓рд┐рдХрд╛ 5. рдлрд╝рдВрдХреНрд╢рди рдорд╛рд╕реНрдХ рдХреА рд╕реВрдЪреАред



рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдкрд╛рда рд╕рдВрд╕реНрдХрд░рдг
рдореВрд▓реНрдпрдЯрд┐рдкреНрдкрдгреА
{} рдПрдЪ рдПрд╕рдореБрдЦреМрдЯрд╛ - рдШрд░ рдХрд╛ рдирдВрдмрд░
{} рджреНрд╡рд╛рд░рд╛рдореБрдЦреМрдЯрд╛ - рдХреЗрд╕ рдирдВрдмрд░
{} рдмреАрдЬреАрдореБрдЦреМрдЯрд╛ - рднрд╡рди рд╕рдВрдЦреНрдпрд╛
{} рдЕрдиреБрд╕реВрдЪрд┐рдд рдЬрдирдЬрд╛рддрд┐рдореБрдЦреМрдЯрд╛ - рдЧрд▓реА
{Zc}рдореБрдЦреМрдЯрд╛ - рдкреЛрд╕реНрдЯрдХреЛрдб
{} рдбреАрдЯреАрдореБрдЦреМрдЯрд╛ - рд╢рд╣рд░реА рдХреНрд╖реЗрддреНрд░
{} рдПрд▓.рдкреА.рдореБрдЦреМрдЯрд╛ - рдЕрдзреАрдирд╕реНрде рд╢рд╣рд░
{} рдПрд▓рдПрдордореБрдЦреМрдЯрд╛ - рдореБрдЦреНрдп рдмрд╕реНрддреА
{} рдЯреА.рдкреА.рдореБрдЦреМрдЯрд╛ - рдорд╣рд╛рд╕рдВрдШ рдХреЗ рд╡рд┐рд╖рдп рдХрд╛ рдХреНрд╖реЗрддреНрд░
{TM}рдореБрдЦреМрдЯрд╛ - рдорд╣рд╛рд╕рдВрдШ (рдХреНрд╖реЗрддреНрд░) рдХрд╛ рд╡рд┐рд╖рдп
{} рд╕реАрд╡рд╛рдИрдореБрдЦреМрдЯрд╛ - рджреЗрд╢


"рдПрдлрдЖрдИрдПрдПрд╕ рдПрдбреНрд░реЗрд╕ рдЗрди рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕реАрдХреНрдпреВрдПрд▓ " рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдЕрдиреБрднрд╛рдЧ " рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо " рднреА рджреЗрдЦреЗрдВред
рдлрд╝рдВрдХреНрд╢рди рдЯреЗрдХреНрд╕реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ " fsfn_Houses_TreeActualName рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ " рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдлрдЖрдИрдПрдПрд╕ рд╣реЛрдо рд╕рд░реНрдЪ


Fstf_Houses_SearchByName рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп FIAS рдШрд░реЛрдВ рдХреЗ рдкрддреЗ рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦреЛрдЬ рдХреЛ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡ рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕рдХреЗ рдирд┐рдХрдЯрддрдо рдкреВрд░реНрд╡рдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╛ рджреЛ рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рдХрд╛рд░ рд╕реЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЖрдЗрдП рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо "220" рдирдВрдмрд░ рдХреЗ рд╕рд╛рде рд╕рднреА рдШрд░реЛрдВ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВред


рд╕рд╛рд░рдгреА 6. рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдкрд░рд┐рдгрд╛рдо fstf_Houses_SearchByName ('220')



рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ ( fstf_AddressObjects_SearchByName ) рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдкрддрд╛-рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕реНрддрд░реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рддреИрд░рд╛рдХреА" рдХрд╛ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд╣рдореЗрд╢рд╛ рд╣рд╛рдЙрд╕ рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдкреИрдЯрд░реНрди рд╣реЛрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдирдВрдмрд░, рддреАрд╕рд░рд╛ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдирдВрдмрд░ред


рдЕрдм рдЕрдиреБрд░реЛрдз рдмрджрд▓реЗрдВред рд╣рдо рдкрддреЗ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рднреА рдШрд░реЛрдВ рдХреЛ рдвреВрдВрдврддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдВрдЦреНрдпрд╛ "1" рд╣реИ, рдФрд░ "рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ" рд╢рдмреНрдж рдирд╛рдореЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред


рддрд╛рд▓рд┐рдХрд╛ 7. рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо fstf_Houses_SearchByName ('1', NULL, NULL, 'Krasnoyarsk')



рд╢реЗрд╖ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкрддрд╛-рдЬрдирд░реЗрдЯрд┐рдВрдЧ рддрддреНрд╡реЛрдВ (fstf_AddressObjects_SearchByName) рдХреЗ рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред
рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдкрд╛рда рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ " fstf_Houses_SearchByName рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛ "

ред

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


Fstf_Houses_SearchByName рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрддрд╛-рдЬрдирд░реЗрдЯрд┐рдВрдЧ рддрддреНрд╡реЛрдВ (fstf_AddressObjects_SearchByName) рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рдорд╛рди рд╣реИред рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЦреЛрдЬ рджреЛ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛рдУрдВ, fias_Houses рдФрд░ fias_AddressObjects рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИ ред


рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ 9 рддрд░реНрдХ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рддреАрди рдШрд░ рд╕рдВрдЦреНрдпрд╛ ( a_HouseNum ), рднрд╡рди (a_BuildNum ) рдФрд░ рднрд╡рди ( a_StrucNum ) рд╣реИрдВред рд╢реЗрд╖ 6 ( a_FormalName , a_ShortName , a_ParentFormalName , a_ParentShortName , a_GrandParentFormalName , a_GrandParentShortName ) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ "рд╣рд╛рдЙрд╕ рдирдВрдмрд░" рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╣рд╛рдЙрд╕ рдирдВрдмрд░ рдореЗрдВ рдЙрди рд╕рднреА рдкрддреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░реЗрдЧрд╛ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреБрдХреНрд░рдо рдПрдХ рдкреНрд░рддреАрдХ рдХреЗ рд╕рд╛рде рдорд┐рд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╣рд╛рдЙрд╕ рдирдВрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ NULL рдпрд╛ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ ("") рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрди рд╕рднреА рдордХрд╛рдиреЛрдВ рдХреЗ рдкрддреЗ рдЬрд┐рдирдХреЗ рдкрддреЗ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред



рдЙрдкрд╕рдВрд╣рд╛рд░


рдЗрд╕ рдЦрдВрдб рдореЗрдВ FIAS рдШрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ fias_Houses рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


рдбреЗрдЯрд╛ рдХреЛ рдШрд░реЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкрддрд╛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ ред рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ HOUSE99.DBF рд╣реЛрдЧреА, ADDROB99.DBF рдирд╣реАрдВред рдпрд╣рд╛рдБ 99 рдХреНрд╖реЗрддреНрд░ (рдЧрдгрддрдВрддреНрд░, рдУрдмреНрд▓рд╛рд╕реНрдЯ, рдХреНрд╖реЗрддреНрд░) рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд░рд╛рд╕реНрдиреЛрдпрд╛рд░реНрд╕реНрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП, рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ HOUSE24.DBF рдлрд╝рд╛рдЗрд▓ рд╣реИред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрджреНрдпрддрди рдХреЗ рд╕рд╛рде рдЕрдЧрд▓рд╛ рд╕рдВрдЧреНрд░рд╣ FIAS рдЕрдкрдбреЗрдЯ рдкреГрд╖реНрда рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред HOUSE99.DBF рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕рдореЗрдВ рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ ред

ред

рддрдм HOUSE99.DBF рдлрд╝рд╛рдЗрд▓ рдХреЛ CSV рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ COPY рдХрдерди рджреНрд╡рд╛рд░рд╛ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ fias_Houses_Temp рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред fias_Houses рдореЗрдВ рдХреЛрдИ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдШрд░реЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг " FAS_House рдХреЗ рд▓рд┐рдП FIAS рд╣рд╛рдЙрд╕ рдЕрдкрдбреЗрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ " рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЖрд╡реЗрджрди


Fstf_Houses_AddressObjectTree рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛


рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ ред

рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб
 BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fstf_Houses_AddressObjectTree(a_AOGUID VARCHAR(36), a_HOUSEGUID VARCHAR(36),a_CurrStatus INTEGER,a_ENDDATE TIMESTAMP); /******************************************************************/ /*   (  )   */ /*      */ /******************************************************************/ CREATE OR REPLACE FUNCTION fstf_Houses_AddressObjectTree( a_AOGUID VARCHAR(36), /*    */ /*  */ a_HOUSEGUID VARCHAR(36),/*     */ a_CurrStatus INTEGER default 0,/*    4: */ /* 0 - , */ /* 1-50 - , ..  */ /*  , */ /*    */ /*    */ /*  , */ /* 51 -  */ a_ENDDATE TIMESTAMP default '2079-06-06' /*     */ ) RETURNS TABLE (rtf_GUID VARCHAR(36), rtf_CurrStatus INTEGER,rtf_ActStatus INTEGER, rtf_AOLevel INTEGER,rtf_ShortTypeName VARCHAR(10),rtf_AddressObjectName VARCHAR(100)) AS $BODY$ DECLARE c_HouseAOLevel CONSTANT INTEGER:=8; c_HouseShortTypeName CONSTANT VARCHAR(10):='.'; c_BuildShortTypeName CONSTANT VARCHAR(10):='.'; c_StructShortTypeName CONSTANT VARCHAR(10):='.'; c_StatusActual CONSTANT INTEGER:=1; /*    */ c_StatusNotActual CONSTANT INTEGER:=0; /*     */ c_MAXENDDATE CONSTANT TIMESTAMP:=to_timestamp('2079-06-06 00:00:00', 'YYYY-MM-DD'); v_HouseActStatus INTEGER; /*    */ v_HouseCurrStatus INTEGER; /*     */ v_ENDDATE TIMESTAMP; /*    */ v_HOUSEGUID VARCHAR(36); /*     */ v_HOUSENUM VARCHAR(10); /*   */ v_BUILDNUM VARCHAR(10); /*   */ v_STRUCNUM VARCHAR(10); /*   */ v_Return_Error Integer :=0; /*   */ --************************************************************ --************************************************************ BEGIN RETURN QUERY SELECT * FROM fstf_AddressObjects_AddressObjectTree (a_AOGUID,a_CurrStatus); IF a_ENDDATE IS NULL THEN SELECT INTO v_ENDDATE MAX(ENDDATE) FROM fias_Houses WHERE AOGUID=a_AOGUID AND HOUSEGUID=a_HOUSEGUID; ELSE v_ENDDATE:=a_ENDDATE; END IF; SELECT INTO v_HOUSENUM,v_BUILDNUM,v_STRUCNUM, v_ENDDATE,v_HouseCurrStatus h.HOUSENUM,h.BUILDNUM,h.STRUCNUM, h.ENDDATE,ah.HouseCurrStatus FROM fias_Houses h INNER JOIN (SELECT AOGUID,HOUSEGUID,ENDDATE, RANK() OVER (PARTITION BY AOGUID, HOUSEGUID ORDER BY ENDDATE ASC) AS HouseCurrStatus FROM fias_Houses insh WHERE insh.AOGUID=a_AOGUID AND insh.HOUSEGUID=a_HOUSEGUID) as ah ON h.AOGUID=ah.AOGUID AND h.HOUSEGUID=ah.HOUSEGUID AND h.ENDDATE=ah.ENDDATE WHERE h.ENDDATE=v_ENDDATE; v_HouseActStatus:=CASE WHEN COALESCE(v_ENDDATE,c_MAXENDDATE)= c_MAXENDDATE THEN c_StatusActual ELSE c_StatusNotActual END; v_HouseCurrStatus:=CASE WHEN COALESCE(v_ENDDATE,c_MAXENDDATE)= c_MAXENDDATE THEN 0 ELSE v_HouseCurrStatus END; IF v_HOUSENUM IS NOT NULL THEN RETURN QUERY SELECT a_HOUSEGUID,v_HouseCurrStatus,v_HouseActStatus, c_HouseAOLevel,c_HouseShortTypeName,v_HOUSENUM; END IF; IF v_BUILDNUM IS NOT NULL THEN RETURN QUERY SELECT a_HOUSEGUID,v_HouseCurrStatus,v_HouseActStatus, c_HouseAOLevel,c_BuildShortTypeName,v_BUILDNUM; END IF; IF v_STRUCNUM IS NOT NULL THEN RETURN QUERY SELECT a_HOUSEGUID,v_HouseCurrStatus,v_HouseActStatus, c_HouseAOLevel,c_StructShortTypeName,v_STRUCNUM; END IF; END; $BODY$ LANGUAGE plpgsql; COMMENT ON FUNCTION fstf_Houses_AddressObjectTree(a_AOGUID VARCHAR(36), a_HOUSEGUID VARCHAR(36),a_CurrStatus INTEGER,a_ENDDATE TIMESTAMP) IS '  (  )       '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fstf_Houses_AddressObjectTree(a_HOUSEGUID VARCHAR(36),a_ENDDATE TIMESTAMP); /******************************************************************/ /*   (  )   */ /*      */ /******************************************************************/ CREATE OR REPLACE FUNCTION fstf_Houses_AddressObjectTree( a_HOUSEGUID VARCHAR(36),/*     */ a_ENDDATE TIMESTAMP default '2079-06-06'/*     */ ) RETURNS TABLE (rtf_GUID VARCHAR(36), rtf_CurrStatus INTEGER,rtf_ActStatus INTEGER, rtf_AOLevel INTEGER,rtf_ShortTypeName VARCHAR(10),rtf_AddressObjectName VARCHAR(100)) AS $BODY$ DECLARE c_MaxEndDate CONSTANT TIMESTAMP:=TO_TIMESTAMP('2079-06-06','YYYY-MM-DD'); c_ActualStatusCode CONSTANT INTEGER :=1; /*      */ c_NotActualStatusCode CONSTANT INTEGER :=0; /*     */ v_AOGUID VARCHAR(36); /*   */ /*   */ v_CurrStatus INTEGER; /*    4: */ /* 0 - , */ /* 1-50 - , */ /* ..   , */ /*     */ /*     , */ /* 51 - */ v_Return_Error Integer :=0; /*   */ --******************************************************************* --******************************************************************* BEGIN SELECT INTO v_AOGUID,v_CurrStatus h.AOGUID, CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE ao.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE ao.aoguid = iao.aoguid) ELSE 0 END FROM fias_Houses h INNER JOIN fias_AddressObjects ao ON h.AOGUID=ao.AOGUID WHERE h.HOUSEGUID=a_HOUSEGUID AND h.ENDDATE=COALESCE(a_ENDDATE,c_MaxEndDate) ORDER BY h.ENDDATE DESC; RETURN QUERY SELECT * FROM fstf_Houses_AddressObjectTree( v_AOGUID,a_HOUSEGUID, v_CurrStatus,a_ENDDATE); END; $BODY$ LANGUAGE plpgsql; COMMENT ON FUNCTION fstf_Houses_AddressObjectTree(a_HOUSEGUID VARCHAR(36),a_ENDDATE TIMESTAMP) IS '  (  )       '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; SELECT * FROM fstf_Houses_AddressObjectTree('8b40b028-68eb-4315-a256-ea300c604688','42301ab8-9ead-4f8e-8281-e64f2769a254') ORDER BY rtf_AOLevel; SELECT * FROM fstf_Houses_AddressObjectTree('42301ab8-9ead-4f8e-8281-e64f2769a254') ORDER BY rtf_AOLevel; ; BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fstf_Houses_AddressObjectTree(a_AOGUID VARCHAR(36), a_HOUSEGUID VARCHAR(36),a_CurrStatus INTEGER,a_ENDDATE TIMESTAMP); /******************************************************************/ /*   (  )   */ /*      */ /******************************************************************/ CREATE OR REPLACE FUNCTION fstf_Houses_AddressObjectTree( a_AOGUID VARCHAR(36), /*    */ /*  */ a_HOUSEGUID VARCHAR(36),/*     */ a_CurrStatus INTEGER default 0,/*    4: */ /* 0 - , */ /* 1-50 - , ..  */ /*  , */ /*    */ /*    */ /*  , */ /* 51 -  */ a_ENDDATE TIMESTAMP default '2079-06-06' /*     */ ) RETURNS TABLE (rtf_GUID VARCHAR(36), rtf_CurrStatus INTEGER,rtf_ActStatus INTEGER, rtf_AOLevel INTEGER,rtf_ShortTypeName VARCHAR(10),rtf_AddressObjectName VARCHAR(100)) AS $BODY$ DECLARE c_HouseAOLevel CONSTANT INTEGER:=8; c_HouseShortTypeName CONSTANT VARCHAR(10):='.'; c_BuildShortTypeName CONSTANT VARCHAR(10):='.'; c_StructShortTypeName CONSTANT VARCHAR(10):='.'; c_StatusActual CONSTANT INTEGER:=1; /*    */ c_StatusNotActual CONSTANT INTEGER:=0; /*     */ c_MAXENDDATE CONSTANT TIMESTAMP:=to_timestamp('2079-06-06 00:00:00', 'YYYY-MM-DD'); v_HouseActStatus INTEGER; /*    */ v_HouseCurrStatus INTEGER; /*     */ v_ENDDATE TIMESTAMP; /*    */ v_HOUSEGUID VARCHAR(36); /*     */ v_HOUSENUM VARCHAR(10); /*   */ v_BUILDNUM VARCHAR(10); /*   */ v_STRUCNUM VARCHAR(10); /*   */ v_Return_Error Integer :=0; /*   */ --************************************************************ --************************************************************ BEGIN RETURN QUERY SELECT * FROM fstf_AddressObjects_AddressObjectTree (a_AOGUID,a_CurrStatus); IF a_ENDDATE IS NULL THEN SELECT INTO v_ENDDATE MAX(ENDDATE) FROM fias_Houses WHERE AOGUID=a_AOGUID AND HOUSEGUID=a_HOUSEGUID; ELSE v_ENDDATE:=a_ENDDATE; END IF; SELECT INTO v_HOUSENUM,v_BUILDNUM,v_STRUCNUM, v_ENDDATE,v_HouseCurrStatus h.HOUSENUM,h.BUILDNUM,h.STRUCNUM, h.ENDDATE,ah.HouseCurrStatus FROM fias_Houses h INNER JOIN (SELECT AOGUID,HOUSEGUID,ENDDATE, RANK() OVER (PARTITION BY AOGUID, HOUSEGUID ORDER BY ENDDATE ASC) AS HouseCurrStatus FROM fias_Houses insh WHERE insh.AOGUID=a_AOGUID AND insh.HOUSEGUID=a_HOUSEGUID) as ah ON h.AOGUID=ah.AOGUID AND h.HOUSEGUID=ah.HOUSEGUID AND h.ENDDATE=ah.ENDDATE WHERE h.ENDDATE=v_ENDDATE; v_HouseActStatus:=CASE WHEN COALESCE(v_ENDDATE,c_MAXENDDATE)= c_MAXENDDATE THEN c_StatusActual ELSE c_StatusNotActual END; v_HouseCurrStatus:=CASE WHEN COALESCE(v_ENDDATE,c_MAXENDDATE)= c_MAXENDDATE THEN 0 ELSE v_HouseCurrStatus END; IF v_HOUSENUM IS NOT NULL THEN RETURN QUERY SELECT a_HOUSEGUID,v_HouseCurrStatus,v_HouseActStatus, c_HouseAOLevel,c_HouseShortTypeName,v_HOUSENUM; END IF; IF v_BUILDNUM IS NOT NULL THEN RETURN QUERY SELECT a_HOUSEGUID,v_HouseCurrStatus,v_HouseActStatus, c_HouseAOLevel,c_BuildShortTypeName,v_BUILDNUM; END IF; IF v_STRUCNUM IS NOT NULL THEN RETURN QUERY SELECT a_HOUSEGUID,v_HouseCurrStatus,v_HouseActStatus, c_HouseAOLevel,c_StructShortTypeName,v_STRUCNUM; END IF; END; $BODY$ LANGUAGE plpgsql; COMMENT ON FUNCTION fstf_Houses_AddressObjectTree(a_AOGUID VARCHAR(36), a_HOUSEGUID VARCHAR(36),a_CurrStatus INTEGER,a_ENDDATE TIMESTAMP) IS '  (  )       '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fstf_Houses_AddressObjectTree(a_HOUSEGUID VARCHAR(36),a_ENDDATE TIMESTAMP); /******************************************************************/ /*   (  )   */ /*      */ /******************************************************************/ CREATE OR REPLACE FUNCTION fstf_Houses_AddressObjectTree( a_HOUSEGUID VARCHAR(36),/*     */ a_ENDDATE TIMESTAMP default '2079-06-06'/*     */ ) RETURNS TABLE (rtf_GUID VARCHAR(36), rtf_CurrStatus INTEGER,rtf_ActStatus INTEGER, rtf_AOLevel INTEGER,rtf_ShortTypeName VARCHAR(10),rtf_AddressObjectName VARCHAR(100)) AS $BODY$ DECLARE c_MaxEndDate CONSTANT TIMESTAMP:=TO_TIMESTAMP('2079-06-06','YYYY-MM-DD'); c_ActualStatusCode CONSTANT INTEGER :=1; /*      */ c_NotActualStatusCode CONSTANT INTEGER :=0; /*     */ v_AOGUID VARCHAR(36); /*   */ /*   */ v_CurrStatus INTEGER; /*    4: */ /* 0 - , */ /* 1-50 - , */ /* ..   , */ /*     */ /*     , */ /* 51 - */ v_Return_Error Integer :=0; /*   */ --******************************************************************* --******************************************************************* BEGIN SELECT INTO v_AOGUID,v_CurrStatus h.AOGUID, CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE ao.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE ao.aoguid = iao.aoguid) ELSE 0 END FROM fias_Houses h INNER JOIN fias_AddressObjects ao ON h.AOGUID=ao.AOGUID WHERE h.HOUSEGUID=a_HOUSEGUID AND h.ENDDATE=COALESCE(a_ENDDATE,c_MaxEndDate) ORDER BY h.ENDDATE DESC; RETURN QUERY SELECT * FROM fstf_Houses_AddressObjectTree( v_AOGUID,a_HOUSEGUID, v_CurrStatus,a_ENDDATE); END; $BODY$ LANGUAGE plpgsql; COMMENT ON FUNCTION fstf_Houses_AddressObjectTree(a_HOUSEGUID VARCHAR(36),a_ENDDATE TIMESTAMP) IS '  (  )       '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; SELECT * FROM fstf_Houses_AddressObjectTree('8b40b028-68eb-4315-a256-ea300c604688','42301ab8-9ead-4f8e-8281-e64f2769a254') ORDER BY rtf_AOLevel; SELECT * FROM fstf_Houses_AddressObjectTree('42301ab8-9ead-4f8e-8281-e64f2769a254') ORDER BY rtf_AOLevel; 



Fsfn_Houses_TreeActualName рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛


рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ ред
рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб
 BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fsfn_Houses_TreeActualName(a_AOGUID VARCHAR(36),a_HOUSEGUID VARCHAR(36),a_MaskArray VARCHAR(2)[10]) CASCADE; /*****************************************************************/ /*           */ /*****************************************************************/ CREATE OR REPLACE FUNCTION fsfn_Houses_TreeActualName( a_AOGUID VARCHAR(36), /*    */ a_HOUSEGUID VARCHAR(36), /*     */ a_MaskArray VARCHAR(2)[10] default '{TP,LM,LP,ST,HS,BY,BG}' /*  ,   */ /*    */ ) RETURNS VARCHAR(1000) AS $BODY$ DECLARE c_HouseMaskArray CONSTANT VARCHAR(2)[3]:='{HS,BY,BG}'; /*    */ c_HouseNoMask CONSTANT VARCHAR(2)[1] :='{HS}'; c_BodyNoMask CONSTANT VARCHAR(2)[1] :='{BY}';/*  */ c_BuildingNoMask CONSTANT VARCHAR(2)[1] :='{BG}';/*  */ c_HouseShortTypeName CONSTANT VARCHAR(10):='.'; c_BuildShortTypeName CONSTANT VARCHAR(10):='.'; c_StructShortTypeName CONSTANT VARCHAR(10):='.'; v_ENDDATE TIMESTAMP; /*    */ v_HOUSENUM VARCHAR(10); /*   */ v_BUILDNUM VARCHAR(10); /*   */ v_STRUCNUM VARCHAR(10); /*   */ v_TreeAddressObjectName VARCHAR(1000); /*     */ v_Return_Error Integer :=0; /*   */ --******************************************************* --******************************************************* BEGIN v_TreeAddressObjectName:=fsfn_AddressObjects_TreeActualName (a_AOGUID,a_MaskArray); SELECT INTO v_ENDDATE MAX(ENDDATE) FROM fias_Houses WHERE AOGUID=a_AOGUID AND HOUSEGUID=a_HOUSEGUID; SELECT INTO v_HOUSENUM,v_BUILDNUM,v_STRUCNUM HOUSENUM, BUILDNUM,STRUCNUM FROM fias_Houses WHERE AOGUID=a_AOGUID AND HOUSEGUID=a_HOUSEGUID AND ENDDATE=v_ENDDATE; IF c_HouseNoMask <@ a_MaskArray AND COALESCE(TRIM(v_HOUSENUM),'')<>'' THEN v_TreeAddressObjectName:=v_TreeAddressObjectName|| CASE WHEN v_TreeAddressObjectName='' THEN '' ELSE ', ' ||c_HouseShortTypeName||' '||v_HOUSENUM END; END IF; IF c_BodyNoMask <@ a_MaskArray AND COALESCE(TRIM(v_BUILDNUM),'')<>'' THEN v_TreeAddressObjectName:=v_TreeAddressObjectName|| CASE WHEN v_TreeAddressObjectName='' THEN '' ELSE ', ' || c_BuildShortTypeName||' '||v_BUILDNUM END; END IF; IF c_BuildingNoMask <@ a_MaskArray AND COALESCE(TRIM(v_STRUCNUM),'')<>'' THEN v_TreeAddressObjectName:=v_TreeAddressObjectName|| CASE WHEN v_TreeAddressObjectName='' THEN '' ELSE ', ' || c_StructShortTypeName||' '||v_STRUCNUM END; END IF; RETURN v_TreeAddressObjectName; END; $BODY$ LANGUAGE plpgsql ; COMMENT ON FUNCTION fsfn_Houses_TreeActualName(a_AOGUID VARCHAR(36),a_HOUSEGUID VARCHAR(36),a_MaskArray VARCHAR(2)[10]) IS '         '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fsfn_Houses_TreeActualName(a_HOUSEGUID VARCHAR(36),a_MaskArray VARCHAR(2)[10]) CASCADE; /*****************************************************************/ /*           */ /*****************************************************************/ CREATE OR REPLACE FUNCTION fsfn_Houses_TreeActualName( a_HOUSEGUID VARCHAR(36), /*     */ a_MaskArray VARCHAR(2)[10] default '{TP,LM,LP,ST,HS,BY,BG}' /*  ,   */ /*    */ ) RETURNS VARCHAR(1000) AS $BODY$ DECLARE c_MaxEndDate CONSTANT TIMESTAMP:=TO_TIMESTAMP('2079-06-06','YYYY-MM-DD'); v_AOGUID VARCHAR(36); /*    */ v_TreeAddressObjectName VARCHAR(1000); /*     */ v_Return_Error Integer :=0; /*   */ --********************************************************** --********************************************************** BEGIN SELECT INTO v_AOGUID h.AOGUID FROM fias_Houses h INNER JOIN fias_AddressObjects ao ON h.AOGUID=ao.AOGUID WHERE h.HOUSEGUID=a_HOUSEGUID AND h.ENDDATE=c_MaxEndDate ORDER BY h.ENDDATE DESC; v_TreeAddressObjectName:=fsfn_Houses_TreeActualName (v_AOGUID,a_HOUSEGUID,a_MaskArray); RETURN v_TreeAddressObjectName; END; $BODY$ LANGUAGE plpgsql ; COMMENT ON FUNCTION fsfn_Houses_TreeActualName(a_HOUSEGUID VARCHAR(36),a_MaskArray VARCHAR(2)[10]) IS '         '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; SELECT fsfn_Houses_TreeActualName('8b40b028-68eb-4315-a256-ea300c604688','42301ab8-9ead-4f8e-8281-e64f2769a254'); SELECT fsfn_Houses_TreeActualName('42301ab8-9ead-4f8e-8281-e64f2769a254'); 



Fstf_Houses_SearchByName рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдирд╛


рдлрд╝рдВрдХреНрд╢рди рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ ред
рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб
 BEGIN TRANSACTION; DROP FUNCTION IF EXISTS fstf_Houses_SearchByName(a_HouseNum VARCHAR(20),a_BuildNum VARCHAR(10),a_StrucNum VARCHAR(10),a_FormalName VARCHAR(150),a_ShortName VARCHAR(20),a_ParentFormalName VARCHAR(150),a_ParentShortName VARCHAR(20), a_GrandParentFormalName VARCHAR(150),a_GrandParentShortName VARCHAR(20)); /*****************************************************/ /*       */ /*        */ /*****************************************************/ CREATE OR REPLACE FUNCTION fstf_Houses_SearchByName( a_HouseNum VARCHAR(20), /*   */ a_BuildNum VARCHAR(10) default NULL,/*   */ a_StrucNum VARCHAR(10) default NULL, /*   */ a_FormalName VARCHAR(150) default NULL, /*  */ /*     */ a_ShortName VARCHAR(20) default NULL, /*  */ /*     */ a_ParentFormalName VARCHAR(150) default NULL, /*  */ /*     */ a_ParentShortName VARCHAR(20) default NULL, /*  */ /*     */ a_GrandParentFormalName VARCHAR(150) default NULL, /*  */ /*     */ a_GrandParentShortName VARCHAR(20) default NULL /*  */ /*     */ ) RETURNS TABLE (rtf_AOGUID VARCHAR(36),rtf_HOUSEGUID VARCHAR(36),rtf_AOLevel INTEGER,rtf_HousesFullName VARCHAR(1000),rtf_HouseNum VARCHAR(20),rtf_BuildNum VARCHAR(10),rtf_StrucNum VARCHAR(10),rtf_EndDate TIMESTAMP,rtf_ShortName VARCHAR(20),rtf_FormalName VARCHAR(150), rtf_CurrStatus INTEGER,rtf_ActStatus INTEGER, rtf_ParentShortName VARCHAR(20),rtf_ParentFormalName VARCHAR(150),rtf_GrandParentShortName VARCHAR(20),rtf_GrandParentFormalName VARCHAR(150)) AS $BODY$ DECLARE c_WildChar CONSTANT VARCHAR(2)='%'; c_BlankChar CONSTANT VARCHAR(2)=' '; v_HouseNumTemplate VARCHAR(150); /*     */ v_BuildNumTemplate VARCHAR(150); /*     */ v_StrucNumTemplate VARCHAR(150); /*     */ v_FormalNameTemplate VARCHAR(150); /*    */ /*   */ v_ShortNameTemplate VARCHAR(20); /*    */ /*    */ v_ParentFormalNameTemplate VARCHAR(150); /*    */ /*    */ v_ParentShortNameTemplate VARCHAR(20); /*    */ /*     */ v_GrandParentFormalNameTemplate VARCHAR(150); /*    */ /*    */ v_GrandParentShortNameTemplate VARCHAR(20); /*   */ /*     */ --*************************************************************** --*************************************************************** BEGIN v_ShortNameTemplate:=UPPER(COALESCE(c_WildChar ||REPLACE(TRIM(a_ShortName),c_BlankChar,c_WildChar) ||c_WildChar,c_WildChar)); v_FormalNameTemplate:=UPPER(COALESCE(c_WildChar ||REPLACE(TRIM(a_FormalName),c_BlankChar,c_WildChar) ||c_WildChar,c_WildChar)); v_HouseNumTemplate:= CASE WHEN TRIM(COALESCE(a_HouseNum,''))='' THEN '' ELSE LOWER(c_WildChar ||REPLACE(TRIM(a_HouseNum),c_BlankChar,c_WildChar)) END ||CASE WHEN TRIM(COALESCE(a_BuildNum,''))='' THEN '' ELSE LOWER(c_WildChar ||REPLACE(TRIM(a_BuildNum),c_BlankChar,c_WildChar)) END || CASE WHEN TRIM(COALESCE(a_StrucNum,''))='' THEN '' ELSE LOWER(c_WildChar ||REPLACE(TRIM(a_StrucNum),c_BlankChar,c_WildChar)) END; v_HouseNumTemplate:=v_HouseNumTemplate||c_WildChar; v_HouseNumTemplate:=CASE WHEN TRIM(COALESCE(a_HouseNum,''))='' THEN '' ELSE LOWER(c_WildChar ||REPLACE(TRIM(a_HouseNum),c_BlankChar,c_WildChar)) END ||c_WildChar; v_BuildNumTemplate:=CASE WHEN TRIM(COALESCE(a_BuildNum,''))='' THEN '' ELSE LOWER(c_WildChar ||REPLACE(TRIM(a_BuildNum),c_BlankChar,c_WildChar)) END ||c_WildChar; v_StrucNumTemplate:=CASE WHEN TRIM(COALESCE(a_StrucNum,''))='' THEN '' ELSE LOWER(c_WildChar ||REPLACE(TRIM(a_StrucNum),c_BlankChar,c_WildChar)) END||c_WildChar; IF a_FormalName IS NOT NULL AND a_ParentFormalName IS NULL AND a_ParentShortName IS NULL AND a_GrandParentFormalName IS NULL AND a_GrandParentShortName IS NULL THEN IF a_HouseNum IS NOT NULL OR a_BuildNum IS NOT NULL OR a_StrucNum IS NOT NULL THEN RETURN QUERY SELECT cfa.AOGUID,h.HouseGUID,cfa.AOLevel, fsfn_Houses_TreeActualName(h.AOGUID,h.HouseGUID), h.HouseNum,h.BuildNum,h.StrucNum, h.EndDate,cfa.ShortName,cfa.FORMALNAME, cfa.currstatus,cfa.Actstatus, NULL::VARCHAR,NULL::VARCHAR,NULL::VARCHAR,NULL::VARCHAR FROM fias_AddressObjects cfa INNER JOIN fias_Houses h ON cfa.aoguid = h.aoguid WHERE cfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) ELSE 0 END AND h.EndDate=(SELECT MAX(ih.EndDate) FROM fias_Houses ih WHERE cfa.aoguid = ih.aoguid AND h.HouseGUID = ih.HouseGUID) AND UPPER(cfa.FORMALNAME) LIKE v_FormalNameTemplate AND UPPER(cfa.ShortName) LIKE v_ShortNameTemplate AND TRIM(LOWER(COALESCE(h.HouseNum,''))) LIKE v_HouseNumTemplate AND TRIM(LOWER(COALESCE(h.BuildNum,''))) LIKE v_BuildNumTemplate AND TRIM(LOWER(COALESCE(h.StrucNum,''))) LIKE v_StrucNumTemplate ORDER BY cfa.AOLevel,cfa.ShortName,cfa.FORMALNAME, TO_NUMBER(SUBSTRING(h.HouseNum,E'\\d+'),'9999'),h.HouseNum, TO_NUMBER(SUBSTRING(h.BuildNum,E'\\d+'),'9999'),h.BuildNum, TO_NUMBER(SUBSTRING(h.StrucNum,E'\\d+'),'9999'),h.StrucNum; ELSE RETURN QUERY SELECT cfa.AOGUID,h.HouseGUID,cfa.AOLevel, fsfn_Houses_TreeActualName(h.AOGUID,h.HouseGUID), h.HouseNum,h.BuildNum,h.StrucNum,h.EndDate, cfa.ShortName,cfa.FORMALNAME,cfa.currstatus,cfa.Actstatus, NULL::VARCHAR,NULL::VARCHAR,NULL::VARCHAR,NULL::VARCHAR FROM fias_AddressObjects cfa INNER JOIN fias_Houses h ON cfa.aoguid = h.aoguid WHERE cfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) ELSE 0 END AND h.EndDate=(SELECT MAX(ih.EndDate) FROM fias_Houses ih WHERE cfa.aoguid = ih.aoguid AND h.HouseGUID = ih.HouseGUID) AND UPPER(cfa.FORMALNAME) LIKE v_FormalNameTemplate AND UPPER(cfa.ShortName) LIKE v_ShortNameTemplate ORDER BY cfa.AOLevel,cfa.ShortName,cfa.FORMALNAME, TO_NUMBER(SUBSTRING(h.HouseNum,E'\\d+'),'9999'),h.HouseNum, TO_NUMBER(SUBSTRING(h.BuildNum,E'\\d+'),'9999'),h.BuildNum, TO_NUMBER(SUBSTRING(h.StrucNum,E'\\d+'),'9999'),h.StrucNum; END IF; ELSIF a_FormalName IS NOT NULL AND a_ParentFormalName IS NOT NULL AND a_GrandParentFormalName IS NULL AND a_GrandParentShortName IS NULL THEN v_ParentShortNameTemplate:=UPPER(COALESCE(c_WildChar ||REPLACE(TRIM(a_ParentShortName),c_BlankChar,c_WildChar) ||c_WildChar,c_WildChar)); v_ParentFormalNameTemplate:=UPPER(c_WildChar ||REPLACE(TRIM(a_ParentFormalName),c_BlankChar,c_WildChar) ||c_WildChar); v_FormalNameTemplate:=COALESCE(v_FormalNameTemplate,c_WildChar); IF a_HouseNum IS NOT NULL OR a_BuildNum IS NOT NULL OR a_StrucNum IS NOT NULL THEN RETURN QUERY SELECT cfa.AOGUID,h.HouseGUID,cfa.AOLevel, fsfn_Houses_TreeActualName(h.AOGUID,h.HouseGUID), h.HouseNum,h.BuildNum,h.StrucNum,h.EndDate, cfa.ShortName,cfa.FORMALNAME,cfa.currstatus, cfa.Actstatus,pfa.ShortName,pfa.FORMALNAME, NULL::VARCHAR,NULL::VARCHAR FROM fias_AddressObjects pfa INNER JOIN fias_AddressObjects cfa ON pfa.AOGUID=cfa.ParentGUID INNER JOIN fias_Houses h ON cfa.aoguid = h.aoguid WHERE cfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) ELSE 0 END AND h.EndDate=(SELECT MAX(ih.EndDate) FROM fias_Houses ih WHERE cfa.aoguid = ih.aoguid AND h.HouseGUID = ih.HouseGUID) AND pfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE pfa.aoguid = iao.aoguid) ELSE 0 END AND UPPER(pfa.FORMALNAME) LIKE v_ParentFormalNameTemplate AND UPPER(pfa.ShortName) LIKE v_ParentShortNameTemplate AND UPPER(cfa.FORMALNAME) LIKE v_FormalNameTemplate AND UPPER(cfa.ShortName) LIKE v_ShortNameTemplate AND TRIM(LOWER(COALESCE(h.HouseNum,''))) LIKE v_HouseNumTemplate AND TRIM(LOWER(COALESCE(h.BuildNum,''))) LIKE v_BuildNumTemplate AND TRIM(LOWER(COALESCE(h.StrucNum,''))) LIKE v_StrucNumTemplate ORDER BY pfa.ShortName,pfa.FORMALNAME,cfa.AOLevel, cfa.ShortName,cfa.FORMALNAME, TO_NUMBER(SUBSTRING(h.HouseNum,E'\\d+'),'9999'), h.HouseNum,TO_NUMBER(SUBSTRING(h.BuildNum,E'\\d+'),'9999'), h.BuildNum,TO_NUMBER(SUBSTRING(h.StrucNum,E'\\d+'),'9999'), h.StrucNum; ELSE RETURN QUERY SELECT cfa.AOGUID,h.HouseGUID,cfa.AOLevel, fsfn_Houses_TreeActualName(h.AOGUID,h.HouseGUID), h.HouseNum,h.BuildNum,h.StrucNum, h.EndDate,cfa.ShortName,cfa.FORMALNAME, cfa.currstatus,cfa.Actstatus,pfa.ShortName, pfa.FORMALNAME,NULL::VARCHAR,NULL::VARCHAR FROM fias_AddressObjects pfa INNER JOIN fias_AddressObjects cfa ON pfa.AOGUID=cfa.ParentGUID INNER JOIN fias_Houses h ON cfa.aoguid = h.aoguid WHERE cfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) ELSE 0 END AND h.EndDate=(SELECT MAX(ih.EndDate) FROM fias_Houses ih WHERE cfa.aoguid = ih.aoguid AND h.HouseGUID = ih.HouseGUID) AND pfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE pfa.aoguid = iao.aoguid) ELSE 0 END AND UPPER(pfa.FORMALNAME) LIKE v_ParentFormalNameTemplate AND UPPER(pfa.ShortName) LIKE v_ParentShortNameTemplate AND UPPER(cfa.FORMALNAME) LIKE v_FormalNameTemplate AND UPPER(cfa.ShortName) LIKE v_ShortNameTemplate ORDER BY pfa.ShortName,pfa.FORMALNAME,cfa.AOLevel, cfa.ShortName,cfa.FORMALNAME, TO_NUMBER(SUBSTRING(h.HouseNum,E'\\d+'),'9999'), h.HouseNum, TO_NUMBER(SUBSTRING(h.BuildNum,E'\\d+'),'9999'), h.BuildNum, TO_NUMBER(SUBSTRING(h.StrucNum,E'\\d+'),'9999'),h.StrucNum; END IF; ELSE v_GrandParentShortNameTemplate:=COALESCE(UPPER( COALESCE(c_WildChar ||REPLACE(TRIM(a_GrandParentShortName),c_BlankChar,c_WildChar) ||c_WildChar,c_WildChar)),c_WildChar); v_GrandParentFormalNameTemplate:=COALESCE(UPPER( c_WildChar ||REPLACE(TRIM(a_GrandParentFormalName),c_BlankChar,c_WildChar) ||c_WildChar),c_WildChar); v_ParentShortNameTemplate:=COALESCE(UPPER( COALESCE(c_WildChar ||REPLACE(TRIM(a_ParentShortName),c_BlankChar,c_WildChar) ||c_WildChar,c_WildChar)),c_WildChar); v_ParentFormalNameTemplate:=COALESCE(UPPER( c_WildChar||REPLACE(TRIM(a_ParentFormalName),c_BlankChar,c_WildChar) ||c_WildChar),c_WildChar); v_FormalNameTemplate:=COALESCE(v_FormalNameTemplate,c_WildChar); IF a_HouseNum IS NOT NULL OR a_BuildNum IS NOT NULL OR a_StrucNum IS NOT NULL THEN RETURN QUERY SELECT cfa.AOGUID,h.HouseGUID,cfa.AOLevel, fsfn_Houses_TreeActualName(h.AOGUID,h.HouseGUID), h.HouseNum,h.BuildNum,h.StrucNum, h.EndDate,cfa.ShortName,cfa.FORMALNAME, cfa.currstatus,cfa.Actstatus,pfa.ShortName, pfa.FORMALNAME,gpfa.ShortName,gpfa.FORMALNAME FROM fias_AddressObjects gpfa INNER JOIN fias_AddressObjects pfa ON gpfa.AOGUID=pfa.ParentGUID INNER JOIN fias_AddressObjects cfa ON pfa.AOGUID=cfa.ParentGUID INNER JOIN fias_Houses h ON cfa.aoguid = h.aoguid WHERE cfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) ELSE 0 END AND pfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE pfa.aoguid = iao.aoguid) ELSE 0 END AND gpfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE gpfa.aoguid = iao.aoguid) ELSE 0 END AND h.EndDate=(SELECT MAX(ih.EndDate) FROM fias_Houses ih WHERE cfa.aoguid = ih.aoguid AND h.HouseGUID = ih.HouseGUID) AND UPPER(gpfa.FORMALNAME) LIKE v_GrandParentFormalNameTemplate AND UPPER(gpfa.ShortName) LIKE v_GrandParentShortNameTemplate AND UPPER(pfa.FORMALNAME) LIKE v_ParentFormalNameTemplate AND UPPER(pfa.ShortName) LIKE v_ParentShortNameTemplate AND UPPER(cfa.FORMALNAME) LIKE v_FormalNameTemplate AND UPPER(cfa.ShortName) LIKE v_ShortNameTemplate AND TRIM(LOWER(COALESCE(h.HouseNum,''))) LIKE v_HouseNumTemplate AND TRIM(LOWER(COALESCE(h.BuildNum,''))) LIKE v_BuildNumTemplate AND TRIM(LOWER(COALESCE(h.StrucNum,''))) LIKE v_StrucNumTemplate ORDER BY gpfa.ShortName,gpfa.FORMALNAME,pfa.ShortName, pfa.FORMALNAME,cfa.AOLevel,cfa.ShortName, cfa.FORMALNAME, TO_NUMBER(SUBSTRING(h.HouseNum,E'\\d+'),'9999'), h.HouseNum, TO_NUMBER(SUBSTRING(h.BuildNum,E'\\d+'),'9999'), h.BuildNum, TO_NUMBER(SUBSTRING(h.StrucNum,E'\\d+'),'9999'),h.StrucNum; ELSE RETURN QUERY SELECT cfa.AOGUID,h.HouseGUID,cfa.AOLevel, fsfn_Houses_TreeActualName(h.AOGUID,h.HouseGUID), h.HouseNum,h.BuildNum,h.StrucNum, h.EndDate,cfa.ShortName,cfa.FORMALNAME, cfa.currstatus,cfa.Actstatus,pfa.ShortName, pfa.FORMALNAME,gpfa.ShortName,gpfa.FORMALNAME FROM fias_AddressObjects gpfa INNER JOIN fias_AddressObjects pfa ON gpfa.AOGUID=pfa.ParentGUID INNER JOIN fias_AddressObjects cfa ON pfa.AOGUID=cfa.ParentGUID INNER JOIN fias_Houses h ON cfa.aoguid = h.aoguid WHERE cfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) ELSE 0 END AND pfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE pfa.aoguid = iao.aoguid) ELSE 0 END AND gpfa.currstatus= CASE WHEN 0 < ALL(SELECT iao.currstatus FROM fias_AddressObjects iao WHERE cfa.aoguid = iao.aoguid) THEN (SELECT MAX(iao.currstatus) FROM fias_AddressObjects iao WHERE gpfa.aoguid = iao.aoguid) ELSE 0 END AND h.EndDate=(SELECT MAX(ih.EndDate) FROM fias_Houses ih WHERE cfa.aoguid = ih.aoguid AND h.HouseGUID = ih.HouseGUID) AND UPPER(gpfa.FORMALNAME) LIKE v_GrandParentFormalNameTemplate AND UPPER(gpfa.ShortName) LIKE v_GrandParentShortNameTemplate AND UPPER(pfa.FORMALNAME) LIKE v_ParentFormalNameTemplate AND UPPER(pfa.ShortName) LIKE v_ParentShortNameTemplate AND UPPER(cfa.FORMALNAME) LIKE v_FormalNameTemplate AND UPPER(cfa.ShortName) LIKE v_ShortNameTemplate ORDER BY gpfa.ShortName,gpfa.FORMALNAME,pfa.ShortName, pfa.FORMALNAME,cfa.AOLevel,cfa.ShortName, cfa.FORMALNAME, TO_NUMBER(SUBSTRING(h.HouseNum,E'\\d+'),'9999'), h.HouseNum, TO_NUMBER(SUBSTRING(h.BuildNum,E'\\d+'),'9999'), h.BuildNum, TO_NUMBER(SUBSTRING(h.StrucNum,E'\\d+'),'9999'), h.StrucNum; END IF; END IF; END; $BODY$ LANGUAGE plpgsql; COMMENT ON FUNCTION fstf_Houses_SearchByName(a_HouseNum VARCHAR(20),a_BuildNum VARCHAR(10),a_StrucNum VARCHAR(10),a_FormalName VARCHAR(150),a_ShortName VARCHAR(20),a_ParentFormalName VARCHAR(150),a_ParentShortName VARCHAR(20), a_GrandParentFormalName VARCHAR(150),a_GrandParentShortName VARCHAR(20)) IS '            '; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; --SELECT * FROM fstf_Houses_SearchByName('220'); --SELECT * FROM fstf_Houses_SearchByName(NULL,NULL,'220'); SELECT * FROM fstf_Houses_SearchByName('1',NULL,NULL,''); SELECT * FROM fstf_Houses_SearchByName(NULL,NULL,NULL,'','','',NULL,''); 


рдПрдХ FIAS рд╣рд╛рдЙрд╕ рдЯреЗрдмрд▓ fias_Houses рдмрдирд╛рдирд╛


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб
 BEGIN TRANSACTION; DROP TABLE IF EXISTS fias_Houses; DROP TABLE IF EXISTS fias_EstateStatus; DROP TABLE IF EXISTS fias_StructureStatus; CREATE TABLE IF NOT EXISTS fias_Houses( HOUSEID VARCHAR(36) NOT NULL, AOGUID VARCHAR(36) NULL, HOUSEGUID VARCHAR(36) NULL, HOUSENUM VARCHAR(10) NULL, BUILDNUM VARCHAR(10) NULL, STRUCNUM VARCHAR(10) NULL, POSTALCODE VARCHAR(6) NULL, OKATO VARCHAR(11) NULL, OKTMO VARCHAR(11) NULL, IFNSFL VARCHAR(4) NULL, TERRIFNSFL VARCHAR(4) NULL, IFNSUL VARCHAR(4) NULL, TERRIFNSUL VARCHAR(4) NULL, ESTSTATUS INTEGER NULL, STATSTATUS INTEGER NULL, STRSTATUS INTEGER NULL, STARTDATE TIMESTAMP NULL, ENDDATE TIMESTAMP NULL, UPDATEDATE TIMESTAMP NULL, NORMDOC VARCHAR(36) NULL, COUNTER INTEGER NULL, CADNUM VARCHAR(50) NULL, DIVTYPE INTEGER NULL, CONSTRAINT XPKfias_Houses PRIMARY KEY ( HOUSEID )) WITH (OIDS=False); CREATE INDEX XIE1fias_Houses ON fias_Houses(AOGUID); CREATE INDEX XIE2fias_Houses ON fias_Houses(HOUSEGUID); CREATE INDEX XIE3fias_Houses ON fias_Houses(AOGUID,HOUSEGUID); CREATE INDEX XIE4fias_Houses ON fias_Houses(HOUSENUM,BUILDNUM,STRUCNUM); CREATE INDEX XIE5fias_Houses ON fias_Houses(HOUSENUM); CREATE INDEX XIE6fias_Houses ON fias_Houses(BUILDNUM); CREATE INDEX XIE7fias_Houses ON fias_Houses(STRUCNUM); COMMENT ON TABLE fias_Houses IS 'HOUSE         ,     .'; COMMENT ON COLUMN fias_Houses.HOUSEID IS '   '; COMMENT ON COLUMN fias_Houses.AOGUID IS '      (, ,    ..)'; COMMENT ON COLUMN fias_Houses.HOUSEGUID IS '   '; COMMENT ON COLUMN fias_Houses.HOUSENUM IS ' '; COMMENT ON COLUMN fias_Houses.BUILDNUM IS ' '; COMMENT ON COLUMN fias_Houses.STRUCNUM IS ' '; COMMENT ON COLUMN fias_Houses.POSTALCODE IS ' '; COMMENT ON COLUMN fias_Houses.IFNSFL IS '  '; COMMENT ON COLUMN fias_Houses.TERRIFNSFL IS '    '; COMMENT ON COLUMN fias_Houses.IFNSUL IS '  '; COMMENT ON COLUMN fias_Houses.TERRIFNSUL IS '    '; COMMENT ON COLUMN fias_Houses.OKATO IS ''; COMMENT ON COLUMN fias_Houses.OKTMO IS ''; COMMENT ON COLUMN fias_Houses.ESTSTATUS IS ' '; COMMENT ON COLUMN fias_Houses.STRSTATUS IS ' '; COMMENT ON COLUMN fias_Houses.STATSTATUS IS ' '; COMMENT ON COLUMN fias_Houses.STARTDATE IS '  '; COMMENT ON COLUMN fias_Houses.ENDDATE IS '  '; COMMENT ON COLUMN fias_Houses.UPDATEDATE IS '  () '; COMMENT ON COLUMN fias_Houses.NORMDOC IS '    '; COMMENT ON COLUMN fias_Houses.COUNTER IS '     4'; COMMENT ON COLUMN fias_Houses.CADNUM IS '  '; COMMENT ON COLUMN fias_Houses.DIVTYPE IS ' : 0 тАУ   1 тАУ  2 тАУ '; CREATE TABLE IF NOT EXISTS fias_EstateStatus( EstateStatusID INTEGER NOT NULL, EstateStatusName varchar(60) NULL, EstateStatusShortName varchar(20) NULL, CONSTRAINT XPKfias_EstateStatus PRIMARY KEY (EstateStatusID)) WITH (OIDS=False); COMMENT ON TABLE fias_EstateStatus IS ' ()  '; COMMENT ON COLUMN fias_EstateStatus.EstateStatusID IS ' .  :0 тАУ  ,1 тАУ ,2 тАУ ,3 тАУ '; COMMENT ON COLUMN fias_EstateStatus.EstateStatusName IS ''; COMMENT ON COLUMN fias_EstateStatus.EstateStatusShortName IS ' '; CREATE TABLE IF NOT EXISTS fias_StructureStatus( StructureStatusID INTEGER NOT NULL, StructureStatusName varchar(60) NULL, StructureStatusShortName varchar(20) NULL, CONSTRAINT XPKfias_StructureStatus PRIMARY KEY (StructureStatusID)) WITH (OIDS=False); COMMENT ON TABLE fias_StructureStatus IS ' ()  '; COMMENT ON COLUMN fias_StructureStatus.StructureStatusID IS ' .  :0 тАУ  ,1 тАУ ,2 тАУ ,3 тАУ '; COMMENT ON COLUMN fias_StructureStatus.StructureStatusName IS ''; COMMENT ON COLUMN fias_StructureStatus.StructureStatusShortName IS ' '; --ROLLBACk TRANSACTION; COMMIT TRANSACTION; 



FIAS рд╣реЛрдо рдЕрдкрдбреЗрдЯреНрд╕ рдХреЛ fias_Houses рдЯреЗрдмрд▓ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд░реЛрдд рдХреЛрдб
 BEGIN TRANSACTION; do $$ BEGIN /****************************************/ /*    */ /****************************************/ DROP TABLE IF EXISTS fias_DeletedHouses_temp; DROP TABLE IF EXISTS fias_Houses_temp; DROP TABLE IF EXISTS fias_EstateStatus_temp; DROP TABLE IF EXISTS fias_StructureStatus_temp; CREATE TABLE fias_Houses_temp AS SELECT * FROM fias_Houses LIMIT 1; DELETE FROM fias_Houses_temp; CREATE TABLE fias_DeletedHouses_temp AS SELECT * FROM fias_Houses LIMIT 1; DELETE FROM fias_DeletedHouses_temp; CREATE TABLE fias_EstateStatus_temp AS SELECT * FROM fias_EstateStatus LIMIT 1; DELETE FROM fias_EstateStatus_temp; CREATE TABLE fias_StructureStatus_temp AS SELECT * FROM fias_StructureStatus LIMIT 1; DELETE FROM fias_StructureStatus_temp; /*****************************************************/ /*     fias_EstateStatus  */ /*  " "   */ /*****************************************************/ COPY fias_EstateStatus_temp(EstateStatusID,EstateStatusNAME,EstateStatusShortName) FROM 'W:\Projects\Enisey GIS\DB\SourceData\ESTSTAT_20180827.csv' WITH (FORMAT csv,DELIMITER ';', ENCODING 'UTF8'); /*************************************************/ /*     */ /* " "     */ /*************************************************/ UPDATE fias_EstateStatus s SET EstateStatusNAME=t.EstateStatusNAME, EstateStatusShortName=t.EstateStatusShortName FROM fias_EstateStatus ds INNER JOIN fias_EstateStatus_temp t ON ds.EstateStatusID=t.EstateStatusID WHERE ds.EstateStatusID=s.EstateStatusID; INSERT INTO fias_EstateStatus(EstateStatusID,EstateStatusNAME,EstateStatusShortName) SELECT EstateStatusID,EstateStatusNAME,EstateStatusShortName FROM fias_EstateStatus_temp t WHERE NOT EXISTS (SELECT * FROM fias_EstateStatus os WHERE t.EstateStatusID=os.EstateStatusID); /******************************************************/ /*     fias_StructureStatus  */ /*  " "  */ /******************************************************/ COPY fias_StructureStatus_temp(StructureStatusID,StructureStatusNAME,StructureStatusShortName) FROM 'W:\Projects\Enisey GIS\DB\SourceData\STRSTAT_20180827.csv' WITH (FORMAT csv,DELIMITER ';', ENCODING 'UTF8'); /*****************************************************************/ /*     " "  */ /*   */ /*****************************************************************/ UPDATE fias_StructureStatus s SET StructureStatusNAME=t.StructureStatusNAME, StructureStatusShortName=t.StructureStatusShortName FROM fias_StructureStatus ds INNER JOIN fias_StructureStatus_temp t ON ds.StructureStatusID=t.StructureStatusID WHERE ds.StructureStatusID=s.StructureStatusID; INSERT INTO fias_StructureStatus(StructureStatusID,StructureStatusNAME,StructureStatusShortName) SELECT StructureStatusID,StructureStatusNAME,StructureStatusShortName FROM fias_StructureStatus_temp t WHERE NOT EXISTS (SELECT * FROM fias_StructureStatus os WHERE t.StructureStatusID=os.StructureStatusID); /***********************************************************************/ /*     fias_Houses_temp     */ /**********************************************************************/ COPY fias_Houses_temp(AOGUID,BUILDNUM,ENDDATE,ESTSTATUS,HOUSEGUID,HOUSEID,HOUSENUM,STATSTATUS,IFNSFL,IFNSUL,OKATO,OKTMO,POSTALCODE,STARTDATE,STRUCNUM,STRSTATUS,TERRIFNSFL,TERRIFNSUL,UPDATEDATE,NORMDOC,COUNTER,CADNUM,DIVTYPE) FROM 'W:\Projects\Enisey GIS\DB\SourceData\HOUSE24_20180827.csv' WITH (FORMAT csv,DELIMITER ';', ENCODING 'UTF8'); /************************************************************/ /*     fias_DeletedHouses_temp , */ /*        */ /************************************************************/ /*  DHOUSE24      . */ /*         */ /************************************************************/ /* COPY fias_DeletedHouses_temp(AOGUID,BUILDNUM,ENDDATE,ESTSTATUS,HOUSEGUID,HOUSEID,HOUSENUM,STATSTATUS,IFNSFL,IFNSUL,OKATO,OKTMO,POSTALCODE,STARTDATE,STRUCNUM,STRSTATUS,TERRIFNSFL,TERRIFNSUL,UPDATEDATE,NORMDOC,COUNTER,CADNUM,DIVTYPE) FROM 'W:\Projects\Enisey GIS\DB\SourceData\DHOUSE24_20180827.csv' WITH (FORMAT csv,DELIMITER ';', ENCODING 'UTF8'); */ /***********************************************************************/ /*        */ /***********************************************************************/ UPDATE fias_Houses h SET AOGUID=t.AOGUID, BUILDNUM=t.BUILDNUM, ENDDATE=t.ENDDATE, ESTSTATUS=t.ESTSTATUS, HOUSEGUID=t.HOUSEGUID, HOUSENUM=t.HOUSENUM, STATSTATUS=t.STATSTATUS, IFNSFL=t.IFNSFL, IFNSUL=t.IFNSUL, OKATO=t.OKATO, OKTMO=t.OKTMO, POSTALCODE=t.POSTALCODE, STARTDATE=t.STARTDATE, STRUCNUM=t.STRUCNUM, STRSTATUS=t.STRSTATUS, TERRIFNSFL=t.TERRIFNSFL, TERRIFNSUL=t.TERRIFNSUL, UPDATEDATE=t.UPDATEDATE, NORMDOC=t.NORMDOC, COUNTER=t.COUNTER, CADNUM=t.CADNUM, DIVTYPE=t.DIVTYPE FROM fias_Houses dh INNER JOIN fias_Houses_Temp t ON t.HOUSEID=dh.HOUSEID WHERE h.HOUSEID=dh.HOUSEID; /****************************************************/ /*       */ /*       */ /* fias_DeletedHouses_temp */ /****************************************************/ DELETE FROM fias_Houses h WHERE EXISTS(SELECT 1 FROM fias_DeletedHouses_temp delh WHERE delh.HOUSEID=h.HOUSEID); /****************************************************/ /*       */ /*  fias_Houses,  */ /*    fias_Houses_Temp */ /****************************************************/ INSERT INTO fias_Houses(AOGUID,BUILDNUM,ENDDATE,ESTSTATUS,HOUSEGUID,HOUSEID,HOUSENUM,STATSTATUS,IFNSFL,IFNSUL,OKATO,OKTMO,POSTALCODE,STARTDATE,STRUCNUM,STRSTATUS,TERRIFNSFL,TERRIFNSUL,UPDATEDATE,NORMDOC,COUNTER,CADNUM,DIVTYPE) SELECT AOGUID,BUILDNUM,ENDDATE,ESTSTATUS,HOUSEGUID,HOUSEID,HOUSENUM,STATSTATUS,IFNSFL,IFNSUL,OKATO,OKTMO,POSTALCODE,STARTDATE,STRUCNUM,STRSTATUS,TERRIFNSFL,TERRIFNSUL,UPDATEDATE,NORMDOC,COUNTER,CADNUM,DIVTYPE FROM fias_Houses_Temp t WHERE NOT EXISTS(SELECT * FROM fias_Houses h WHERE t.HOUSEID=h.HOUSEID); /************************************/ /*    */ /************************************/ DROP TABLE IF EXISTS fias_DeletedHouses_temp; DROP TABLE IF EXISTS fias_Houses_temp; DROP TABLE IF EXISTS fias_EstateStatus_temp; DROP TABLE IF EXISTS fias_StructureStatus_temp; END; $$LANGUAGE plpgsql; --ROLLBACK TRANSACTION; COMMIT TRANSACTION; SELECT (SELECT COUNT(*) FROM fias_Houses) AS HouseCount, (SELECT COUNT(*) FROM fias_EstateStatus) AS EStatusCount, (SELECT COUNT(*) FROM fias_StructureStatus) AS SStatusCount; 

Source: https://habr.com/ru/post/hi425287/


All Articles