Uncategorized
JavaScript - This
Saturday, June 5th, 2010 | Uncategorized | No Comments
One of the most powerful JavaScript keywords is this.
http://www.quirksmode.org/js/this.html
element.onclick = doSomething;
The function is copied in its entirety to the onclick property (which now becomes a method). So if the event handler is executed this refers to the HTML element.
However, if you use inline event registration
<element onclick=”doSomething()”>
you do not copy the function! Instead, you refer to it, and the difference is crucial.
Examples:
element.onclick = doSomething
element.addEventListener(’click’,doSomething,false)<element onclick=”doSomething(this)”>
function doSomething(obj) {
obj.style.color = ‘#cc0000′;
}
Kalendarz w MySql
Thursday, March 4th, 2010 | Uncategorized | 1 Comment
create table firstday (data date);
insert into firstday values (’2010-02-20′);
DROP TABLE jednosci;
CREATE TABLE jednosci (jednosci int);
INSERT INTO jednosci VALUES (1);
INSERT INTO jednosci VALUES (2);
INSERT INTO jednosci VALUES (3);
INSERT INTO jednosci VALUES (4);
INSERT INTO jednosci VALUES (5);
INSERT INTO jednosci VALUES (6);
INSERT INTO jednosci VALUES (7);
INSERT INTO jednosci VALUES (8);
INSERT INTO jednosci VALUES (9);
INSERT INTO jednosci VALUES (10);
drop table dziesiatki;
CREATE TABLE dziesiatki (dziesiatki int);
INSERT INTO dziesiatki VALUES (0);
INSERT INTO dziesiatki VALUES (10);
INSERT INTO dziesiatki VALUES (20);
INSERT INTO dziesiatki VALUES (30);
INSERT INTO dziesiatki VALUES (40);
INSERT INTO dziesiatki VALUES (50);
INSERT INTO dziesiatki VALUES (60);
INSERT INTO dziesiatki VALUES (70);
INSERT INTO dziesiatki VALUES (80);
INSERT INTO dziesiatki VALUES (90);
drop table setki;
CREATE TABLE setki (setki int);
INSERT INTO setki VALUES (00);
INSERT INTO setki VALUES (100);
INSERT INTO setki VALUES (200);
INSERT INTO setki VALUES (300);
INSERT INTO setki VALUES (400);
INSERT INTO setki VALUES (500);
INSERT INTO setki VALUES (600);
INSERT INTO setki VALUES (700);
INSERT INTO setki VALUES (800);
INSERT INTO setki VALUES (900);
DROP TABLE tysiac;
CREATE TABLE tysiac AS ( SELECT jednosci+dziesiatki+setki AS x FROM jednosci CROSS JOIN dziesiatki cross join setki ORDER BY x);
select * from tysiac
create table calendar as( select
ADDDATE(data, x) as data from
firstday a cross join
tysiac b);
Uzupełnienie braków w ciągłości, kumulacja
Thursday, May 28th, 2009 | Uncategorized | 1 Comment
data baza;
input dzien kumulacja;
cards;
1 1
2 3
8 4
10 8
15 9
22 15
27 18
30 20
;run;
data temp;
set baza;
output;
ile_brakuje = max(((lag(dzien)-dzien)+1)*-1,0);
do x = 1 to ile_brakuje;
nowy_dzien = dzien - x;
drop ile_brakuje x;
output;
end;
run;
data nowa_baza;
set temp;
dzien = coalesce(nowy_dzien,dzien);
keep kumulacja dzien;
run;
proc sort data= nowa_baza;
by dzien;
run;
Top N wartości dla każdej grupy w pojedyńczym zapytaniu
Thursday, May 21st, 2009 | Uncategorized | No Comments
w pojedyńczym zapytaniu, wow
http://rickosborne.org/blog/index.php/2008/01/07/sql-getting-top-n-rows-for-a-grouped-query/
SELECT c.*, d.ranknum
FROM girl AS c
INNER JOIN (
SELECT a.id, COUNT(*) AS ranknum
FROM girl AS a
INNER JOIN girl AS b ON (a.hair = b.hair) AND (a.score <= b.score)
GROUP BY a.id
HAVING COUNT(*) <= 3
) AS d ON (c.id = d.id)
ORDER BY c.hair, d.ranknum