Sugif 29.1.2014 by Heikki Herva Proc FCMP  Itse kirjoitetut funktiot Hash objekti  ”Taulukkotietorakenne”

Slides:



Advertisements
Samankaltaiset esitykset
Excel ja makrot Excel koostuu kahdesta eri osasta Alt+F11 VBA
Advertisements

 Vuoden 2014 ensimmäinen Tech Club tilaisuus pidettiin SAS Instituten tiloissa Otaniemessä. Päivän teemana oli Proc FCMP ja HASH –objektit. Lisäksi osaanottajia.
SIVUAINEKURSSIT TIEDEKUNTIEN OPINTO-OPPAAT • PAINETUT OPPAAT → student center, kirjasto, tiedekuntien palvelupisteet • PAINETTUJEN OPPAIDEN.
VBA –ohjelmoinnin perusteet
Henrik Lähdeniemi Arto Valtanen
R ja QRMlib-kirjasto Anssi Käki Työn saa tallentaa ja julkistaa Aalto-yliopiston avoimilla verkkosivuilla. Muilta osin kaikki oikeudet pidätetään.
WAP-services “ WAP-interface makes it easier to use mobile services now than ever before - you simply move from one page to another, from one service to.
P UHUTAAN S UOMEA ! L ESSON 7 IML FINNISH LEVEL 1.
vuorovaikutteiset www-sivut 1.Asiakas-palvelinmalli kuvana Request Response request.asp response.asp.
SAS ohjelman suoritusajan mittaaminen ja koodin tehokkuuden parantaminen SAS Technical Clubin kokoontuminen Virpi Virtanen Tieto-Tapiola Oy.
HASH-Objekti ”Taulukkotietorakenne” Sugif by Heikki Herva.
Aggregaattifunktiot (1)
COURSE 1 In Touch (Wsoy). RULES RULES Please, don’t be late! If the door is closed, don't bother! Please, don’t be late! If the door is closed, don't.
Rekursiiviset kyselyt DB2:ssa DB2YTR
Suomalaisia perinneleikkejä
Ohjelma on kokoelma toimintaohjeita annetun tehtävän ______________________. Ohjelmassa on peräkkäisten toimintojen lisäksi yleensä valintaa ja _____________.
VANHEMPAINNEUVOSTO Kokoontuu n. 3 krt / lukuvuosi Kokoontuu klo 18 Mahdollisuus keskusteluun muiden huoltajien kanssa Korvaa johtokunnan Joka luokasta.
Sovellusohjelman suunnittelu & toteutus
Technical Club – BASE SAS Classics. Marko Kivelä, Arvotieto Oy Proc transpose, Proc summary, Proc formats ovat Markon suosikkiproceduureja.
Pseudokoodi Tietokoneohjelmien perusidea:
Tekstitiedostosta lukeminen tMyn1 Tekstitiedostosta lukeminen Tiedosto voidaan avata pelkästään lukemista varten tai kirjoittamista ja lukemista varten.
Haaga-Helia Ammattikorkeakoulu
Erilaiset liitokset FROM-osassa voidaan määritellä relaatio myös erilaisia liitosoperaatioita käyttäen Vasen, oikea ja täysi puoliliitos eli ulkoliitos.
Datan käsittely MySQL SQL, Structured Query Language
Monikon lisääminen (1) Luetellaan kaikki lisättävän rivin arvot INSERT INTO Asiakas VALUES (4, ’Assi’, ’Asiakas’); Luetellaan vain osa arvoista; muut arvot.
Tietokannat –kurssi SQL peruskyselyt
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tervetuloa! Ohjelma klo 9:00-10:30  Avaus, teollisuusneuvos Reijo Vauhkonen  Hallituksen puheenjohtajan puheenvuoro, teollisuusneuvos Matti Virtaala.
4.2-Sulautettu SQL Teuhola Sulautettu (embedded) SQL Ohjelmointikielen (ns. isäntäkielen) laajennus ISO-standardi, määritelty kielille Ada,
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
Tietokannat Tietotekniikan perusteet Pekka Orponen.
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Karteesinen tulo Huomaa attribuuttien nimien tarkentaminen taulujen nimillä.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
MySQL & PostgreSQL Heikki Airaksinen & Janne Richter.
FOR i := 0...N-1 DO summa := summa + A[i] tulo := tulo * A[i] ENDFOR.
Tietokantapalvelimet Ville Parviainen. Sisältö Yleistä tietokannoista SQL PostgreSQL MySQL MySQL vs. PostgreSQL Linux -työ.
Hakemistot Nopeuttavat hakuoperaatioita Hidastavat päivitysoperaatioita Pääavaimelle luodaan aina indeksi; päävain toimii usein hakukriteerinä Luodaan.
KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola
Copyright Oy Thomas Antila Consulting Ab 1 Indeksointi Oracle 8i tietokannassa OUGF Syksy 2000.
SQL ● Structured Query Language ● Standardoitu kieli tietokantakyselyiden tekemiseen – Standardoitu ei tarkoita etteikö olisi useampia versioita, joten.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembler.
Tietokantakyselyt.  Tietokantakysely eli osajoukon erottaminen suuremmasta tietokannasta  Esimerkiksi: Suomen kunnat: Oulu Suomen kunnat: yli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli.
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op
Procedural Language Extensions to SQL
INFINITIIVI / ING-MUOTO
Mikäli ääniyhteys koneen kautta ei toimi
YLIOPISTOTENTTI / UNIVERSITY EXAM
Muuttujamuunnoksista
minun ensimmäinen Perl-ohjelmani!
Probability models and decision analysis
DIC and BMA in BUGS Biotieteellinen tiedekunta / Henkilön nimi / Esityksen nimi
Probability models and decision analysis
Hankalia (?) tilanteita Tammikuu 2014 Keke Tulomäki
Julkaisun otsikko Väyläviraston julkaisuja x/2019
Julkaisun otsikko Väyläviraston tutkimuksia x/2019 Tekijän nimi.
Tähän sopiva otsikkoteksti
Tom40 is likely common to all mitochondria
My final comments to you can be summarized as the three Ps:
Implementing a System for Intentional Concurrency in Jikes RVM
What is Ethics?.
Copyright Pearson Prentice Hall
NoodleTools: How to Cite
Beekeeping at ctjs By Qarnayn
Student Silent Movie Project
Project Title By Design and format everything as you see fit. Make it look visually appealing, professional and easy to understand. Don't get too crazy.
Unless otherwise stated, we will work over Z2 = {0, 1}
Esityksen transkriptio:

Sugif by Heikki Herva Proc FCMP  Itse kirjoitetut funktiot Hash objekti  ”Taulukkotietorakenne”

Yleismoduuli (Yleisosa)

proc fcmp outlib = lt_comu.functions.kurssaus_ltl; subroutine kurssaus_ltl(valkd_in $, valuutta_rm_in, kurssattu_rm, kurssi_out, paluukd, sqlkd); outargs kurssattu_rm, kurssi_out, paluukd, sqlkd; attrib kurssattu_rm format = 17.2 length = 8; attrib kurssi_out format = 8.4 length = 8; attrib paluukd format = 8. length = 8; attrib sqlkd format = 8. length = 8; sqlselect = 'select curate into :sqlresults from comu.exchrate where curncycd = "'||trim(valkd_in)||'" order by enddt desc;'; rc = run_macro('hae_valuuttakurssi', sqlselect, sqlresults, sqlrc, sqlobs); if sqlrc eq 0 and sqlobs gt 0 then paluukd = 0; else paluukd = 1; sqlkd = sqlrc; kurssi_out = sqlresults; kurssattu_rm = valuutta_rm_in * kurssi_out; endsub; quit;

%macro hae_valuuttakurssi; %let sqlselect=%sysfunc(dequote(&sqlselect)); %let sqlresults=; proc sql outobs=1 noprint; &sqlselect; quit; %let sqlresults=&sqlresults; %let sqlrc=&sqlrc; %let sqlobs=&sqlobs; %mend hae_valuuttakurssi;

data nimi_muutettu_1; set nimi_muutettu_2; attrib valkd_in format = $3. length = $3 informat = $3.; attrib valuutta_rm_in format = 17.2 length = 8 informat = 17.2; attrib kurssi_out format = 8.4 length = 8 informat = 8.4; attrib kurssattu_rm format = commax17.2 length = 8 informat = commax17.2; attrib paluukd format = 8. length = 8 informat = 8.; attrib sqlkd format = 8. length = 8 informat = 8.; attrib arvonal_ltl_alle_1v format = commax17.2 length = 8 informat = commax17.2; attrib arvonal_ltl_1_5v format = commax17.2 length = 8 informat = commax17.2;.... Lisää SAS-koodia....

/* Jos valuutta ei ole liti, tehdään rahamääräälle valuuttamuunnos. */ if valuutta_kdi ne 'LTL' then do; valkd_in = valuutta_kdi; valuutta_rm_in = arvonalent_val; kurssattu_rm =.; call kurssaus_ltl(valkd_in, valuutta_rm_in, kurssattu_rm, kurssi_out, paluukd, sqlkd); if paluukd ne 0 then put ’VAROITUS: Poikkeus kurssauksessa ' paluukd= sqlkd= ’.’; end; if lopetus_pvm eq. then lopetus_pvm = 0; /* Lasketaan laina-aika makrolla. */ %maturiteetti(lopetus_pvm,avaus_pvm,vk,vv,kk,pp,pv0); select (valuutta_kdi); when ('LTL') do; select; when (vv eq 0) do; arvonal_ltl_alle_1v = arvonalent_val; end;... SAS-koodi jatkuu... run;

HASH Objekti ”Taulukkotietorakenne”

data nimi_muutettu_3 nimi_muutettu_4 nimi_muutettu_5 nimi_muutettu_6; merge suoherva.liikevaihto_12kk (in=lv) suoherva.sopimus_tapahtumat (in=st) ; by pankki astun; attrib sarake_55_rm format = commax17.2 length = 8; attrib sarake_60_rm format = commax17.2 length = 8; if (_n_ eq 1) then do; * Luodaan hash-taulu konttorissa tehdyistä maksuista.; declare hash hmaksut(dataset: ”nimi_muutettu_sum"); hmaksut.defineKey("pankki","astun"); hmaksut.defineData("pankki","astun","kappalemaara","rahamaara"); hmaksut.defineDone();

* Luodaan hash-taulu omista varoista.; declare hash omatvara(ordered:"a"); omatvara.defineKey("oytun","oyvol_luokitt1"); omatvara.defineData("oytun","oyvol_luokitt1", "oyvol_tietotyyppi","oyvol_rahamaara"); omatvara.defineDone(); do until (eof_toy_vol); set kirjasto.toy_volyymit (keep=oytun oyvol_luokitt1 oyvol_tietotyyppi oyvol_rahamaara) end=eof_toy_vol; if oyvol_tietotyyppi = 'CA' and oyvol_luokitt1 in('40','01') and substr(oytun,7,4) eq '9000' then do; omatvara.add(); end;

pankki = substr(pankki,1,6); astun = astun; rc = hmaksut.find(); select (rc); when (0) do; /* Asiakkaalle löytyi maksutoimeksiantoja. */ if kappalemaara ge 12 then do; /* Haetaan hash-taulusta pankkien omat varat. */ oytun = cats(pankki, '9000'); oyvol_luokitt1 = '40'; rc = omatvara.find(); select (rc); when (0) do; /* Haku onnistui. */ sarake_55_rm = oyvol_rahamaara; end; when (160038) do; /* Pankille ei löytynyt omia varoja. Luokittelu 40. */ sarake_55_rm =.; end; otherwise do; put 'VIRHE: Pankin omien varojen haku hash-taulusta epäonnistui. Luokittelukoodi 40. ' pankki= rc= ’.’; put 'VIRHE: Ajo kaadetaan.'; abort; end;

oyvol_luokitt1 = '01'; rc = omatvara.find(); select (rc); when (0) do; /* Haku onnistui. */ sarake_60_rm = oyvol_rahamaara; end; when (160038) do; /* Pankille ei löytynyt omia varoja. Luokittelu 01. */ sarake_60_rm =.; end; otherwise do; put 'VIRHE: Pankin omien varojen haku hash-taulusta epäonnistui. Luokittelukoodi 01. ' pankki= rc=; put 'VIRHE: Ajo kaadetaan.'; abort; end; else do; output nimi_muutettu_5; end;

when (160038) do; /* Asiakkaalle ei löytynyt maksutoimeksiantoja. */ output nimi_muutettu_6; end; otherwise do; /* Ilmeisesti joku todellinen ongelma. Tehdään virhe. */ put 'VIRHE: Haku maksuliikkeen hash-taulusta epäonnistui. ' rc= '.'; abort; end; run;