Guest User

Untitled

a guest
Apr 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. select
  2. ADDROBJECT.NAME,
  3. ADDROBJECT.ID,
  4. ADDROBJECT.ID as masterid2,
  5. ADDROBJECT.PARENTID,
  6. ADDROBJECT.KINDID,
  7. ADDROBJECT.ELEMENTID,
  8. LONGSTRREPLACE(ADDRKIND.FORMAT, '%s%', ADDROBJECT.NAME),
  9. LONGSTRREPLACE(ADDRKIND.FORMAT, '%s%', ADDROBJECT.NAME) as text
  10. from ADDROBJECT
  11. inner join ADDRKIND
  12. on ADDROBJECT.KINDID = ADDRKIND.ID
  13. where ADDROBJECT.PARENTID=:masterid AND
  14. (ADDROBJECT.RECVALID IS NULL OR ADDROBJECT.RECVALID <> '51') AND
  15. ADDROBJECT.KLADRCODE IS NOT NULL
  16. order by ADDROBJECT.NAME
  17.  
  18. select
  19. ADDROBJECT.NAME,
  20. ADDROBJECT.ID,
  21. ADDROBJECT.ID as masterid2,
  22. ADDROBJECT.PARENTID,
  23. ADDROBJECT.KINDID,
  24. ADDROBJECT.ELEMENTID,
  25. LONGSTRREPLACE(ADDRKIND.FORMAT, '%s%', ADDROBJECT.NAME),
  26. LONGSTRREPLACE(ADDRKIND.FORMAT, '%s%', ADDROBJECT.NAME) as text
  27. from ADDROBJECT
  28. inner join ADDRKIND
  29. on ADDROBJECT.KINDID = ADDRKIND.ID
  30. where (ADDROBJECT.RECVALID IS NULL OR ADDROBJECT.RECVALID <> '51') AND
  31. (select * from GETPARENTCODE(ADDROBJECT.kladrcode)) =
  32. (select SUBSTRING(a.kladrcode FROM 1 FOR 11)
  33. from addrobject a
  34. where a.id=:masterid)
  35. order by text asc
  36.  
  37. begin
  38. strlength = CHAR_LENGTH(KLADRCODE);
  39. if (strlength = 17) then begin
  40. PARENTCODE = SUBSTRING(:KLADRCODE FROM 1 FOR 11);
  41. end else begin
  42. PARTPARENTCODE = SUBSTRING(:KLADRCODE FROM 3 FOR 3);
  43. if (PARTPARENTCODE NOT LIKE '000') then begin
  44. PARENTCODE = (SUBSTRING(:KLADRCODE FROM 1 FOR 2)) || '000000000';
  45. end
  46.  
  47. PARTPARENTCODE = SUBSTRING(:KLADRCODE FROM 6 FOR 3);
  48. if (PARTPARENTCODE NOT LIKE '000') then begin
  49. PARENTCODE = (SUBSTRING(:KLADRCODE FROM 1 FOR 5)) || '000000';
  50. end
  51.  
  52. PARTPARENTCODE = SUBSTRING(:KLADRCODE FROM 9 FOR 3);
  53. if (PARTPARENTCODE NOT LIKE '000') then begin
  54. PARENTCODE = (SUBSTRING(:KLADRCODE FROM 1 FOR 8)) || '000';
  55. end
  56. end
  57.  
  58. SUSPEND;
  59. end
  60.  
  61. (select * from GETPARENTCODE(ADDROBJECT.kladrcode)) =
  62. (select SUBSTRING(a.kladrcode FROM 1 FOR 11)
  63. from addrobject a
  64. where a.id=:masterid)
  65.  
  66. parentcode =
  67. (select SUBSTRING(a.kladrcode FROM 1 FOR 11)
  68. from addrobject a
  69. where a.id=:masterid)
  70.  
  71. UPDATE ADDROBJECT SET parentcode = GETPARENTCODE(kladrcode)
Add Comment
Please, Sign In to add comment