рдореЛрдмрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдЯреИрд░рд┐рдл рдкреНрд▓рд╛рди рдЪреБрдирдиреЗ рдХреА рдЬрд░реВрд░рдд рдереАред рдПрдХреНрд╕реЗрд▓ рдФрд░ рдЧреВрдЧрд▓-рдбреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 30 рдорд┐рдирдЯ рдмрд┐рддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рд╕рдордЭрджрд╛рд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрдк рдирд╛рдпрдм рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдереЛрдбрд╝рд╛ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рд╛рде рдиреЗ рдЦреБрдж "рдХреНрдпреВ" рдЯрд╛рдЗрдк рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ рдФрд░ рдЕрдм рдЙрдкрд▓рдмреНрдз рдерд╛ред рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд╕реЗ рдХреНрдпрд╛ рдкрддрд╛ рдерд╛: рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдФрд░ рдЖрдЦрд┐рд░реА рдмрд╛рд░, 30 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдФрд░ рдЦреЛрдЬрдиреЗ рдХреЗ рдПрдХ рд╕рд░рд▓
рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрд╕рдиреЗ рдХреНрдпрд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдерд╛ред
рдлрд┐рд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ q рд╣реЛрдВрдЧреЗ, рдЕрд░реНрдерд╛рддреН ascii, APL рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╕реНрдХреАрдо рдХреЗ рдПрдХ рдЙрдк-рд╕рдореВрд╣ рдХреЗ рдЕрдиреБрдпрд╛рдпреА, рдЕрд░реНрдерд╛рддреН
k рдФрд░ рдЙрд╕рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ k-sql, рдЬрд┐рд╕реЗ
Q - рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЙрддреНрдкрд╛рдж рдореЗрдВ рд╡рд┐рдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рддрдВрдЧ рдХрдиреЗрдХреНрд╢рди рдФрд░ рдЗрд╕рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ред
C:\Users\unknown\Dropbox\j>q KDB+ 3.0 2013.02.06 Copyright (C) 1993-2013 Kx Systems w32/ 2()core 2972MB unknown win-d2om7les24v 192.168.1.2 PLAY 2013.05.07
рдЧреАрдд рдХреЗ рдХреБрдЫ рдЕрдВрд╢: рдореИрдВ рдСрдкрд░реЗрдЯрд░ рдХреА рд╕рд╛рдЗрдЯ рд╕реЗ рд╕реАрдПрд╕рд╡реА рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╢реАрд░реНрд╖рдХ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ:
; ;tel;time;-; ;money; ; ;22.02.2013 20:38:14;79064014328;00:00:13;0;114,9175;0,0000;114,9175; ;22.02.2013 20:03:49;79094445182;00:12:05;0;114,9175;0,0000;114,9175; ;22.02.2013 17:04:39;79064014328;00:01:15;0;115,8175;-0,9000;114,9175; ;22.02.2013 13:18:22;79064014328;00:01:36;0;116,7175;-0,9000;115,8175; ;22.02.2013 01:35:00;;00:00:00;0;119,3675;-2,6500;116,7175; ;21.02.2013 23:40:42;*102;00:00:01;0;119,3675;0,0000;119,3675;
рдлрд┐рд░ рд╣рдо рдореИрдиреБрдЕрд▓ рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓
0 : , рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЖрдк рдХреЙрд▓рдо рдореЗрдВ рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╡рд┐рднрд╛рдЬрдХ рдХреЛ рдмрд╛рдИрдВ рдУрд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рд╡рд┐рднрд╛рдЬрдХ рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЙрд▓рдо рдХреЛ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕реЗ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рдо рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рджреЛ рдмрд╛рд░ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рддреИрдпрд╛рд░ рд╣реИред
рдЬреЛ рд▓реЛрдЧ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд╕рд╛рде рдКрдм рд░рд╣реЗ рд╣реИрдВ рд╡реЗ рд╕рд╣реА
рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдореЗрдВ рдХреВрдж рд╕рдХрддреЗ рд╣реИрдВред
q)clog:select tel,time,money from ("SSSTSSSS";enlist ";") 0: `:tel.txt q)clog tel time money --------------------------------- 79064014328 00:00:31.000 0,0000 79263883922 00:02:06.000 0,0000 79064014328 00:01:15.000 -0,9000 79064014328 00:01:36.000 -0,9000 00:00:00.000 -2,6500 *102 00:00:01.000 0,0000 ..
рдЪреВрдВрдХрд┐ рдХреНрдпреВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ, рддреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреНрд▓реЙрдЧ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ, рдХреЙрд▓рдо рдирд╛рдо рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред
q)clog.money `0,0000`0,0000`-0,9000`-0,9000`-2,6500`0,0000`0,0000`0,0000`0,0000`0,0000`-0,..
рдореИрдВ рдбреЗрдЯрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкреИрд╕рд╛ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛: ssr рдПрдХ рдУрд░реЗрдХрд▓ рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд╣реИред рд╢рдмреНрдж $ (рдХрд╛рд╕реНрдЯ) рд╡рд┐рднрд┐рдиреНрди рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдкрдврд╝рддрд╛ рд╣реИ:
рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдирдХреНрд╢рд╛ рд╣реИ
{"F"$ssr[string x;",";"."]} each clog.money
рдЦреИрд░, рд╣рдо рдЗрд╕реЗ рдЕрджреНрдпрддрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рд▓рд┐рдЦ рджреЗрдВрдЧреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рдпрджрд┐ рдЖрдк clog рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрджреНрдпрддрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЕрджреНрдпрддрди рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЖрдк рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо `рдХреНрд▓реЙрдЧ 'рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬ рд▓рд┐рдП рдЬрд╛рдПрдВрдЧреЗред рд╣рдо рдлреЛрди рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреА рдмрдирд╛рдПрдВрдЧреЗ, рд╢реБрд░реВ рдореЗрдВ "S" рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЪрд░рд┐рддреНрд░ рдкреНрд░рдХрд╛рд░ рд╣реИред
q)update string tel, {"F"$ssr[string x;",";"."]} each money from `clog `clog
рдЗрд╕ q-sql рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рд╢рдмреНрдж рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд╕рд╛рде рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдп рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд╣рд╛рдВ рдмрд┐рдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреБрд▓рдирд╛ рд╕реВрдЪрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдмрд┐рдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рдпрд╣ рд╕реВрдЪрдХрд╛рдВрдХ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрди рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рд╕реЗ рдЪрдпрди рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реВрдЪреА рдЖрдЗрдЯрдо рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред
q)15<40 10 20 30 1011b q)where 15<40 10 20 30 0 2 3
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдЗрдирдХрдорд┐рдВрдЧ рдФрд░ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдХреЙрд▓ рдФрд░ рднреБрдЧрддрд╛рди рджреЛрдиреЛрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдореИрдВ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдкреИрд╕реЗ рдкрд░ рдбреЗрдмрд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдПрдХ рдлреЛрди рдирдВрдмрд░ рд╣реИ рдФрд░ рдЗрд╕ рдкреБрд░рд╛рдиреЗ рдирд╛рдо рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ:
q)clog:select from clog where money<0,not tel like "" q)clog tel time money -------------------------------- "79064014328" 00:01:15.000 -0.9 "79064014328" 00:01:36.000 -0.9 "79064014328" 00:01:33.000 -0.9 "79104652109" 00:01:23.000 -11.9 "79265996349" 00:00:12.000 -5.95 ..
рд╣рдо рдЙрди рдХреЛрдб рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рдж рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:
рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдХрд░реНрд╖рдг рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
q)gcode:1_ 4# / get code from tel q)gcode each clog.tel "906" "906" "906" "910" "926" ..
q)distinct gcode each clog.tel "906" "910" "926" ..
рдпрд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рдХ sql рдЬреИрд╕реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИред рдирд┐рд╖реНрдкрд╛рджрди рдПрдХ рд╣реА рдЪрдпрди рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд╡реЗрд░реА рдпрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдореВрд▓реНрдпреЛрдВ рдпрд╛ рдореВрд▓реНрдп рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
q)codes:exec distinct gcode each tel from clog q)codes "906" "910" "926" ..
рдЗрд╕рдХреЗ рдмрд╛рдж, рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдкрд░ рдЬрд╛рдПрдВ, рдЙрдирдХрд╛ рд╡рд░реНрдгрди рдмрд╕ <рдЪрд╛рдмрд┐рдпрд╛рдБ> рд╣реИ! <рдорд╛рди>ред рдореИрдВ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХреЛрдб рдмрдирд╛рддрд╛ рд╣реВрдВ <> рдСрдкрд░реЗрдЯрд░ред
q)ops:codes ! `beeline`mts`megafon`beeline`mts`beeline`beeline`mts`moscow q)ops "906"| beeline "910"| mts "926"| megafon "909"| beeline "495"| moscow ..
рдХрдИ рдЯреИрд░рд┐рдл рдПрдХ рдорд┐рдирдЯ рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреЛрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдореИрдВ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдмрд╕ рдПрдХ рдкреВрд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдорд┐рдирдЯ рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рдирд╣реАрдВ рд╣реВрдВ, рдореБрдЭреЗ рдмрд╕ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ, рдмрд╛рдж рдореЗрдВ рдореИрдВ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рдКрдВрдЧрд╛ред рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдореЗрдВ рд╕рдордп, рдЗрд╕рд▓рд┐рдП рдореИрдВ 1000 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
q)update ctime:ceiling (time%1000)%60 from clog tel time money ctime -------------------------------------- "79064014328" 00:01:15.000 -0.9 2 "79064014328" 00:01:36.000 -0.9 2 "79064014328" 00:01:33.000 -0.9 2 "79104652109" 00:01:23.000 -11.9 2 "79265996349" 00:00:12.000 -5.95 1 ..
рдореИрдВ рдПрдХ рдСрдкрд░реЗрдЯрд░ рдФрд░ рдкреВрд░реЗ рдорд┐рдирдЯ рдХреЗ рд╕рд╛рде рдПрдХ рджреГрд╢реНрдп рдмрдирд╛рддрд╛ рд╣реВрдВ, рдЕрдЧрд░ рдореИрдВрдиреЗ рдЯреА рд▓рд┐рдЦрд╛ рд╣реИ: рдореИрдВ рдПрдХ рдЯреЗрдмрд▓ рдЯреА рдмрдирд╛рдКрдВрдЧрд╛ред рдореИрдВ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдкрдбреЗрдЯ рдореВрд▓ рдХреЙрд▓рдо рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред
q)t::update op:ops@gcode each tel, ctime:ceiling (time%1000)%60 from clog q)t tel time money op ctime ---------------------------------------------- "79064014328" 00:01:15.000 -0.9 beeline 2 "79064014328" 00:01:36.000 -0.9 beeline 2 "79064014328" 00:01:33.000 -0.9 beeline 2 "79104652109" 00:01:23.000 -11.9 mts 2 "79265996349" 00:00:12.000 -5.95 megafon 1 ..
рдореБрдЭреЗ рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХреА рд╣рд░ рдЪреАрдЬ рдЯрд╛рдЗрдк рд╣реЛ рдЧрдИ рд╣реИ, рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЯреА рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ, рдпрд╣ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рджреЗрдЦрдиреЗ рдФрд░ рд╡рд┐рд╡рд░рдг рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрд▓рд╕реНрдп:
q)save `:t `:t
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕рд┐рд░реНрдл рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА рд╣реИ, рдЕрдм рдереЛрдбрд╝рд╛ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ: рдкрд╛рд░реНрд╕рд┐рдВрдЧред
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХрд┐рд╕рдиреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХреЙрд▓ рдХрд┐рдпрд╛, рдлрд┐рд░ рд╕рдореВрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рд╕рдореВрд╣реАрдХрд░рдг рдЪреБрдирд┐рдВрджрд╛ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдмрдирд╛рддрд╛ рд╣реИ:
q)select ctime by tel from t tel | ctime .. -------------| --------------------------------------------------------------.. "74956471602"| ,1 .. "79031398210"| 7 3 .. "7903X" | ,2 .. "79064014328"| 2 2 2 2 1 2 1 1 1 3 1 2 2 3 1 1 1 1 2 2 3 3 3 1 3 2 1 1 0 2 1 .. ..
рддрдм рд╣рдо рдЗрд╕ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдбреАрдПрд╕рд╕реА рд░рд┐рд╡рд░реНрд╕ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдпрд╣ рдирд┐рдпрдорд┐рдд рд╕реВрдЪреА рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рджреЛрдиреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдХреЙрд▓рдо рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
q)desc select sum ctime by tel from t tel | ctime -------------| ----- "79064014328"| 126 "79094445182"| 36 "79652650530"| 30 ..
рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдХ рдирдВрдмрд░ рдкрд░ рдХрдИ рдХреЙрд▓ рдереЗ, рдореИрдВрдиреЗ "рдкрд╕рдВрджреАрджрд╛ рдирдВрдмрд░" рдХреЙрд▓рдо рдЬреЛрдбрд╝рд╛, рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдореИрдВрдиреЗ рдСрдкрд░реЗрдЯрд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЗрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдкреБрд░рд╛рдиреЗ рджреГрд╢реНрдп рдХреЛ рдПрдХ рдирдпрд╛ рдирд╛рдо рд╕реМрдВрдкрд╛, рдФрд░ "рдЯреА" рдЕрдм рдкреБрд░рд╛рдиреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рджреГрд╢реНрдп рд╣реИ:
q)t2::update op:ops@gcode each tel, ctime:ceiling (time%1000)%60 from clog q)t::update op:`lub from t2 where tel like "79064014328" q)t tel time money op ctime
рдЕрдм рдпрд╣ рдкреИрд╕реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореЗрдЧрд╛рдлреЛрди рдЯреИрд░рд┐рдл рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рд╡рд╣рд╛рдБ 3 kopecks рд╣реИрдВ, рдпрд╣ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рд╣реИ:
q)meg3:{0.03*sum x}
рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдкреИрд╕реЗ рдХреНрдпрд╛ рд╣реИрдВ:
q)select meg3 time%1000 by op from t op | time
рдЖрдкрдХреЛ рдЯреИрд░рд┐рдл рд╡рд┐рдХрд▓реНрдк рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛ `рд▓рдм рд╣реИ, рддреЛ рдХреАрдордд рдХреЛ рджреЛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рдФрд░ 30 рдкреА рдЬреЛрдбрд╝реЗрдВред
q)lub:{$[x=`lub;30+y%2;y]} / [op;time]
рдпрд╣ рд╕рдм, рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛, рдпрд╣рд╛рдБ рд▓рдм рдХреЗ рд▓рд┐рдП рдХрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
q){lub[x] meg3[y]}
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рджреНрд╡рд╛рд░рд╛ "рджреНрд╡рд╛рд░рд╛" рдкрд░рд┐рдгрд╛рдо рдХреА рдХреБрдВрдЬреА рдФрд░ рдорд╛рди рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдПрдХ рдЙрдкрд╢реНрд░реЗрдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдЪреВрдВрдХрд┐ op рдФрд░ time рдПрдХ рдЯреЗрдмрд▓ рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рджреЛ рдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдирд┐рдпрдорд┐рдд db рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рд╕реВрдЪрд┐рдпрд╛рдБ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рд╕реВрдЪреА рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА) рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ: рдСрдкрд░реЗрдЯрд░ рдФрд░ рд╕рдордп рдХреА рдПрдХ рд╕реВрдЪреА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ '(рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди), рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ
рдЬрд╝рд┐рдкрд╡рд┐рде рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реВрдЪреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ред рдирд┐рдпрдорд┐рдд db рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ 'рджреНрд╡рд╛рд░рд╛ рдЬрдЯрд┐рд▓ рд╣реИ:
q)select money:{lub[x] meg3[y]}'[op;time] from select time%1000 by op from t money ------ 259.98 29.1 0.93 24.45
рд╕рд╛рд░рд╛рдВрд╢ рдпрд╣ рд╣реИ рдХрд┐, рдЖрдк рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧ рдФрд░ рдпреЛрдЧ рдирд┐рд╖реНрдкрд╛рджрди рджреЛрдиреЛрдВ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдкрд░рд┐рдгрд╛рдо рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо - рдпрд╣ рдПрдХ рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рддрд╛ рд╣реИ:
q)exec sum {lub[x] meg3[y]}'[op;time] from select time%1000 by op from t 314.46
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдЯреИрд░рд┐рдл рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдЦрд░реНрдЪ рдХрд░реВрдВрдЧрд╛ред рдЕрдм рдПрдХ рдФрд░ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдорд┐рдирдЯ рдХреЛ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реЗ рдкрд░ред рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЧрдгрдирд╛ рдХрд░рдиреА рд╣реЛрдЧреА, рдЬреЛ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
q)mego:sum {1.20+$[x<=60;0;1.20*(x-60)%60]} each q)exec sum {lub[x] mego[y]}'[op;time] from select time%1000 by op from t 258.06
рдкреВрд░реНрдг рдХреЛрдб:
clog:select tel,time,money from ("SSSTSSSS";enlist ";") 0: `:tel.txt {"F"$ssr[string x;",";"."]} each clog.money update string tel, {"F"$ssr[string x;",";"."]} each money from `clog clog:select from clog where money<0,not tel like "" gcode:1_ 4# codes:exec distinct gcode each tel from clog ops:codes ! `beeline`mts`megafon`beeline`mts`beeline`beeline`mts`moscow t2::update op:ops@gcode each tel, ctime:ceiling (time%1000)%60 from clog t::update op:`lub from t2 where tel like "79064014328" meg3:{0.03*sum x} mego:sum {1.20+$[x<=60;0;1.20*(x-60)%60]} each lub:{$[x=`lub;30+y%2;y]} exec sum {lub[x] meg3[y]}'[op;time] from select time%1000 by op from t exec sum {lub[x] mego[y]}'[op;time] from select time%1000 by op from t
рдЗрд╕ рдкрд╛рда рдХреЛ рдмрдирд╛рдирд╛ рдЗрди 14 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рдерд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдРрд╕реА рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрднрд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧ рдХреА рд╕рд╛рджрдЧреА рдФрд░ рдХреБрдЫ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рд╕реНрдкрд╖реНрдЯрддрд╛ рдиреЗ рдореБрдЭреЗ рдпрд╣ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХреАред рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рдпрдорд┐рдд рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдпрд╣рд╛рдВ рдбреЗрдЯрд╛ рдХреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЗрд╕ db рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╕рд╛рджрдЧреА рдФрд░ рд╕рд╣рдЬрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдпреЛрдЬрдирд╛ рдФрд░ рдПрдкреАрдПрд▓ рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕ рдЙрдкрдХрд░рдг рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдкреНрд░рднрд╛рд╡ APL рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ sql рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдУрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ q.exe рдлрд╝рд╛рдЗрд▓, ~ 400kb рдЖрдХрд╛рд░ рдореЗрдВ рд╣реИред рд╕реНрдХреЗрдкреНрдЯрд┐рдХреНрд╕ рдЙрд╕рдХреЗ рдмрд╛рдж рдореБрд╕реНрдХреБрд░рд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреА рдЧреНрд░рд╛рд╣рдХ рд╕реВрдЪреА рдХреЛ рджреЗрдЦреЗрдВ
http://kx.com/end-user-customers.php ред
рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ
http://kx.com/software-download.php рдкрд░ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ