Nume coloane dinamic

Am primit de cateva ori cerinta ca, intr-un raport facut in sql, sa afisez dinamic numele coloanelor, in functie de ce reprezinta ele.

Ca sa fie mai clar, dau un exemplu: mi s-a cerut sa afisez coloana dobanda intr-un raport de doua ori, odata cu numele anului curent si alta data cu numele anului precedent, si sa aduc in ele valorile aferente. Iar acest raport trebuia sa poata sa fie rulat in fiecare an si valorile si NUMELE COLOANELOR respective sa se schimbe in concordanta.

Daca aveti aceasta problema, am facut un exemplu de script ca sa va fie de ajutor in a intelege cum puteti face acest lucru.

 

[mai mult...]

Afisare data in format ddmmyyyy

M-am lovit deseori de situatia de a fi nevoit sa afisez , intr-un raport facut in sql, data in formatul ddmmyyyy, sau variante ale acestui format, de genul dd.mm.yyyy, dd/mm/yyyy, dd-mm-yyyy…

Ca atare am facut o functie care primeste ca prim parametru data, si ca parametru secundar un separator si afiseaza data in formatul ddmmyyyy cu separatorul ales intre zile luni si an.

[mai mult...]

Verificare setari server SQL

Pentru cazurile in care avem nevoie sa vedem ce fel de setari sunt pe un server de sql am facut o procedura care, rulata pe server, ne arata urmatoarele lucruri:

– daca instalarea e Case Sensitive sau nu
– calea unde sunt fisierele mdf si ldf aferente bazei Master
– calea unde este fisierul care inregistreaza erorile
– calea unde e instalat serverul de sql
– versiunea serverului de sql
– numele serverului
– editia
– ultimul service pack instalat
– daca e clustered sau nu
– versiunea motorului de sql
– collatiunea instalata

 

[mai mult...]

Verificare EOM

Pentru ca uneori avem nevoie sa verificam daca o data calendaristica este sau nu ultima zi din luna, am creat o functie care verifica acest lucru. (In ea se apeleaza o alta functie care transforma data intr-un format fara minute si secunde)

[mai mult...]

Transformarea unui string (sau o coloana varchar) intr-o lista (similar TRANSPOSE)

In cazul in care avem nevoie ca dintr-un string (adica o insiruire de caractere pe orizontala) delimitat (de un caracter sau un string repetitiv) sa facem o lista (adica sa punem pe verticala parti din stringul anterior, similar functiei TRANSPOSE din excel), am facut o functie care are doi parametri:
– primul parametru este un string (care poate sa fie o coloana dintr-o tabela)
– al doilea un string delimitator

Functia parseaza primul parametru si il imparte sub forma de lista in functie de parametrul numarul doi.

Pentru exemplificare, daca intr-o coloana am ceva de genul:
Dumitru Bogdan;Costache Cristian;Vasilescu Ionel;Mihaescu Georgel
atunci functia, apelata cu primul parametru ca fiind coloana respectiva si cu al doilea parametru ca fiind ‘;’ va returna lista de mai jos:

Id Data
1 Dumitru Bogdan
2 Costache Cristian
3 Vasilescu Ionel
4 Mihaescu Georgel

[mai mult...]

Formatare IBAN in grupuri de x caractere cu delimitator variabil

Am creat o functie care parseaza un string de caractere si il formateaza impartindu-l in grupuri de x caractere, iar aceste grupuri sunt delimitate de un string la alegere.

Este foarte folositoare la formatarea de IBAN-uri, pt ca diferite rapoarte cer formatarea IBAN-urilor in diferite feluri, si pentru a nu sta de fiecare data sa facem update in tabele fizice sau temporare, putem sa folosim functia de mai jos.

[mai mult...]

Transformarea unui text neuniform in text uniform scris

Intalnim deseori ca intr-o tabela sa gasim text, in special in campurile in care este permisa scrierea la liber, care este scris neuniform, in sensul ca ori incepe cu prima litera mica si continua cu restul mari (a fost apasat Caps-ul gresit), ori are litere mari pe la mijloc, tot din apasarea gresit a caps-ului, etc

 

Pentru a formata un astfel de text, am creat functia de mai jos:

 

[mai mult...]

Calculare varsta la data aleasa in functie de CNP

Avem nevoie uneori, in rapoarte, de varsta clientului la data curenta sau la o anumita data.

Si aici sunt doua situatii: avem nevoie de varsta in ani impliniti sau de varsta exacta, adica ani si zile.

Ca atare am facut o functie ca are trei parametri:

primul este cnp-ul

al doilea este data la care va fi calculata varsta

al treilea este un flag care specifica tipul calcului: pt 0 se calculeaza anii impliniti iar pt 1 se calculeaza varsta exacta in ani si zile.

[mai mult...]