!!! Kruimeltje weetjes
[{TableOfContents }]
!! Professionalisering
Per medio 2010 wordt krm [geprofessionaliseerd|Kruimelhost Configuratie].
\\
* backup maken database:
{{{mysqldump krmdb --no-create-db --no-create-info -u root -p > mysqldumpkrm.sql}}}
* "unload" van database:
{{{
mysql> select * from peuter where datumtijdlaatstgewijzigd > '2007-06-25 07:00:00' order by nummer into outfile '/tmp/krmexport.sql' FIELDS TERMINATED BY '||' enclosed by '"' lines terminated by '\n';
Query OK, 62 rows affected (0.01 sec)
}}}
* weer laden van unload:
{{{
mysql> load data infile '/home/metskem/krmexport.sql' replace into table peuter FIELDS TERMINATED BY '||' enclosed by '"' lines terminated by '\n';
Query OK, 124 rows affected (0.01 sec)
Records: 62 Deleted: 62 Skipped: 0 Warnings: 0
}}}
!! domein namen
||naam||opmerking
|www.kruimeltje.nl|niet meer beschikbaar (Efteling)
|www.kruimeltjerijssen.nl|vrij
|www.kruimeltje-rijssen.nl|vrij
|www.kruimeltje-rijssen-holten.nl|vrij
|www.kruimeltjerijssenholten.nl|vrij
|www.peuterspeelzaalkruimeltje.nl|vrij __<== deze is het geworden__
|www.peuterspeelzaal-kruimeltje.nl|vrij
!! Queries
|Tel alle peuters |''select count(*) from peuter;''
|Tel alle actieve peuters|''select count(*) from peuter where datumeerstebezoek<curdate() and datumlaatstebezoek > curdate();''
|Tel alle actieve peuters per vestiging:|?
|Overzicht overjarige peuters|select peuter.nummer,voornaam,achternaam,adres,telnr,geboortedatum,(select naam from groep where groep.nummer=peuter.groep1) as groep1,(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging1,(select naam from groep where groep.nummer=peuter.groep2) as groep2,(select vestiging from groep where groep.nummer=peuter.groep2) as vestiging2,datumeerstebezoek as eerstebezoek,datumingeschreven as ingeschreven,datumlaatstebezoek as laatstebezoek,opmerking from peuter where datumlaatstebezoek>curdate() and datumeerstebezoek<curdate() order by geboortedatum,achternaam,voornaam;
|Groep overzicht MA2 ZPW|select peuter.nummer,peuter.voornaam,peuter.achternaam,peuter.adres,peuter.postcode,peuter.woonplaats,peuter.telnr,peuter.geboortedatum from peuter where datumeerstebezoek<=curdate() and datumlaatstebezoek>curdate() and (peuter.groep1=(select nummer from groep where naam='MA2' and vestiging='ZevenPeggenweg') or peuter.groep2=(select nummer from groep where naam='MA2' and vestiging='ZevenPeggenweg')) order by geboortedatum;
|Alle actieve peuters op de Hoeksteen|select peuter.nummer,peuter.voornaam,peuter.achternaam from peuter where datumeerstebezoek<=curdate() and datumlaatstebezoek>curdate() and (peuter.groep1 in (select nummer from groep where vestiging='Hoeksteen') or peuter.groep2 in (select nummer from groep where vestiging='Hoeksteen'));
|aantal peuters per groep vanaf datum xxx|select groep.naam,groep.vestiging,count(*) as aantal,min(datumeerstebezoek) as 'eerste eerstebezoek', max(datumeerstebezoek) as 'laatste eerstebezoek' from groep,peuter where (peuter.groep1=groep.nummer or peuter.groep2=groep.nummer) and peuter.datumeerstebezoek<='2009-09-01' and peuter.datumlaatstebezoek>'2009-09-01' group by groep.vestiging,groep.naam;
|alle overjarige peuters die niet in groepen zijn ingedeeld|select distinct peuterid,voornaam,achternaam from peuter where datumlaatstebezoek>curdate() and date_add(geboortedatum,INTERVAL 4 year) < curdate() and peuterid not in (select peuterid from peuter2groep) order by 1 desc;
!! Jaarlijkse rapportage
De volgende SQL statements zijn handig voor het maken van de jaarlijkse rapportage:
%%warning oude krm systeem %%
%%small
{{{
# aantal peuters per vestiging voor elke maand:
select "2009-04",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-04-30" and datumlaatstebezoek>"2009-04-30" group by vestiging desc;
select "2009-05",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-05-31" and datumlaatstebezoek>"2009-05-31" group by vestiging desc;
select "2009-06",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-06-30" and datumlaatstebezoek>"2009-06-30" group by vestiging desc;
select "2009-07",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-07-31" and datumlaatstebezoek>"2009-07-31" group by vestiging desc;
select "2009-08",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-08-31" and datumlaatstebezoek>"2009-08-31" group by vestiging desc;
select "2009-09",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-09-30" and datumlaatstebezoek>"2009-09-30" group by vestiging desc;
select "2009-10",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-10-31" and datumlaatstebezoek>"2009-10-31" group by vestiging desc;
select "2009-11",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-11-30" and datumlaatstebezoek>"2009-11-30" group by vestiging desc;
select "2009-12",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-12-31" and datumlaatstebezoek>"2009-12-31" group by vestiging desc;
select "2010-01",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2010-01-31" and datumlaatstebezoek>"2010-01-31" group by vestiging desc;
select "2010-02",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2010-02-28" and datumlaatstebezoek>"2010-02-28" group by vestiging desc;
select "2010-03",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2010-03-31" and datumlaatstebezoek>"2010-03-31" group by vestiging desc;
# dubbelpeuters per vestiging:
select "2009-04",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-04-30" and datumlaatstebezoek>"2009-04-30" and groep2 is not NULL group by vestiging desc;
select "2009-05",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-05-31" and datumlaatstebezoek>"2009-05-31" and groep2 is not NULL group by vestiging desc;
select "2009-06",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-06-30" and datumlaatstebezoek>"2009-06-30" and groep2 is not NULL group by vestiging desc;
select "2009-07",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-07-31" and datumlaatstebezoek>"2009-07-31" and groep2 is not NULL group by vestiging desc;
select "2009-08",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-08-31" and datumlaatstebezoek>"2009-08-31" and groep2 is not NULL group by vestiging desc;
select "2009-09",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-09-30" and datumlaatstebezoek>"2009-09-30" and groep2 is not NULL group by vestiging desc;
select "2009-10",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-10-31" and datumlaatstebezoek>"2009-10-31" and groep2 is not NULL group by vestiging desc;
select "2009-11",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-11-30" and datumlaatstebezoek>"2009-11-30" and groep2 is not NULL group by vestiging desc;
select "2009-12",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2009-12-31" and datumlaatstebezoek>"2009-12-31" and groep2 is not NULL group by vestiging desc;
select "2009-01",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2010-01-31" and datumlaatstebezoek>"2010-01-31" and groep2 is not NULL group by vestiging desc;
select "2009-02",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2010-02-28" and datumlaatstebezoek>"2010-02-28" and groep2 is not NULL group by vestiging desc;
select "2009-03",(select vestiging from groep where groep.nummer=peuter.groep1) as vestiging,count(*) as aantal from peuter where datumeerstebezoek<"2010-03-31" and datumlaatstebezoek>"2010-03-31" and groep2 is not NULL group by vestiging desc;
# $2005_2006.$A$3:$B$16;$2005_2006.$E$3:$E$16;$2005_2006.$H$3:$H$16file:///home/metskem/mySQL/krm1.sql
}}}
%%
%%warning nieuwe krm systeem %%
__ Aantal peuters __
%%small
{{{
mysql> select "2010-10",count(*) from peuter p where datumeerstebezoek<'2010-10-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2010-11-01' );
+---------+----------+
| 2011-10 | count(*) |
+---------+----------+
| 2011-10 | 181 |
+---------+----------+
1 row in set (0.00 sec)
}}} %%
__ Aantal bezoeken __
%%small
{{{
mysql> select "2010-10",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2010-10-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2010-11-01' ) and p.peuterid=p2g.peuterid;
+---------+-----------------+
| 2011-10 | aantal bezoeken |
+---------+-----------------+
| 2011-10 | 358 |
+---------+-----------------+
1 row in set (0.00 sec)
}}} %%
Effe bij mekaar voor een hele serie maanden :
%%small {{{
select "2010-10",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2010-10-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2010-11-01' ) and p.peuterid=p2g.peuterid;
select "2010-11",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2010-11-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2010-12-01' ) and p.peuterid=p2g.peuterid;
select "2010-12",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2010-12-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-01-01' ) and p.peuterid=p2g.peuterid;
select "2011-01",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2011-01-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-02-01' ) and p.peuterid=p2g.peuterid;
select "2011-02",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2011-02-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-03-01' ) and p.peuterid=p2g.peuterid;
select "2011-03",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2011-03-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-04-01' ) and p.peuterid=p2g.peuterid;
select "2011-04",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2011-04-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-05-01' ) and p.peuterid=p2g.peuterid;
select "2011-05",count(*) as 'aantal bezoeken' from peuter p, peuter2groep p2g where datumeerstebezoek<'2011-05-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-06-01' ) and p.peuterid=p2g.peuterid;
select "2010-10",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2010-10-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2010-11-01' );
select "2010-11",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2010-11-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2010-12-01' );
select "2010-12",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2010-12-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-01-01' );
select "2011-01",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2011-01-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-02-01' );
select "2011-02",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2011-02-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-03-01' );
select "2011-03",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2011-03-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-04-01' );
select "2011-04",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2011-04-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-05-01' );
select "2011-05",count(*) as 'aantal peuters' from peuter p where datumeerstebezoek<'2011-05-01' and (datumlaatstebezoek is null OR datumlaatstebezoek >= '2011-06-01' );
}}} %%
! (Jaarlijkse) groepindeling.
%%prettify
{{{
select voornaam, achternaam, adres, group_concat(substr(g.naam,5,3)) as "Groepen"
from peuter p, peuter2groep p2g, groep g
where p.peuterid=p2g.peuterid and p2g.groepid=g.groepid
and p.datumeerstebezoek <='2012-10-01' and (datumlaatstebezoek is null or datumlaatstebezoek>'2011-10-01')
group by achternaam,voornaam,adres
order by p.achternaam,p.voornaam;
}}}
%%
Even mysql aanroepen met de --html optie, en dan als eerste command iets van {{tee /var/www/groepindeling.html}}\\
Dan nog even een overzicht van de groepen/leidsters erbij :
%%prettify
{{{
select concat(l.voornaam," ",l.achternaam) as leidster, group_concat(substr(g.naam,5,3)) as 'groep'
from leidster l, leidster2groep l2g,groep g
where l.leidsterid=l2g.leidsterid and l2g.groepid=g.groepid and l.professioneel='J'
group by l.achternaam,l.voornaam
order by l.achternaam,l.voornaam;
}}}
%%
!! Maandelijkse registratie peuters
! Peuters die uitgestroomd zijn
%%prettify
{{{
select voornaam,achternaam,datumlaatstebezoek,(select naam from basisschool
where peuter.basisschool=basisschool.basisschoolid) as basisschool
from peuter
where datumlaatstebezoek>'2012-09-30' and datumlaatstebezoek<='2012-10-31';
}}}
%%
! Peuters die ingestroomd zijn
%%prettify
{{{
select voornaam,achternaam,datumeerstebezoek,(select naam from basisschool
where peuter.basisschool=basisschool.basisschoolid) as basisschool
from peuter
where datumeerstebezoek>'2012-09-30' and datumeerstebezoek<='2012-10-31';
}}}
%%
! Hoeveel dagdelen heeft elke peuter
%%prettify
{{{
select voornaam,achternaam, count(*)
from peuter p, peuter2groep p2g, groep g
where p.peuterid=p2g.peuterid and p2g.groepid=g.groepid and datumeerstebezoek<curdate() and (datumlaatstebezoek>curdate() or datumlaatstebezoek is null)
group by voornaam,achternaam
order by 3,achternaam,voornaam;
}}}
%%
! Peuters wachtlijst instroom
%%prettify
{{{
select voornaam,achternaam, geboortedatum
from peuter
where (datumeerstebezoek>'2012-10-01' or datumeerstebezoek is null)
order by achternaam,voornaam;
}}}
%%
! Peuters op wachtlijst ouder dan 2,5 jaar
%%prettify
{{{
select voornaam,achternaam, geboortedatum,datumeerstebezoek
from peuter where (datumeerstebezoek>curdate() or datumeerstebezoek is null) and date_add(geboortedatum, interval 2.5 year ) < '2012-09-01'
order by geboortedatum desc, achternaam,voornaam;
}}}
%%