mercoledì 13 settembre 2017

How to: Count all numeric row with "n" decimals

Sembra facile ma non è difficile...
come si possono contare tutte le righe di una tabella per cui un campo numerico ha un Dato numero di decimali.

Consideriamo di avere una tabella simile a questa:

ID ContoDiCasa Causale Importo_con_decimali Percentuali
1 Elettrodomestici Televisione 2300,000 48,191
2 Assicurazioni Macchina_A 1800,000 37,714
3 Spesa supermercato 123,950 2,60
4 Benzina Macchina_A 70,000 1,467
5 Elettrodomestici Frullatore 120,000 2,55
6 Elettrodomestici Bilancia 30,000 0,629
7 Benzina Macchina_B 20,000 0,42
8 Assicurazioni Casa 186,000 3,897
9 Giochi Console 75,050 1,572
10 Giochi Under18 47,720 1,00


Rappresenta in breve un ipotetico conto di casa, supponiamo di voler cercare tutte le occorrenze che hanno solo 2 posizioni decimali.


Select
      Percentuali,
      right(CONVERT(varchar,Percentuali),3) soloDec,
      CHARINDEX('.', right(CONVERT(varchar,Percentuali),3)) PosizionePunto,     
from
      mia_Tabella
where
      Percentuali >0
and
      CHARINDEX('.', right(CONVERT(varchar,Percentuali),3)) =2

Con questa prima query recuperiamo solo i dati di nostro interesse.

Select count (*) from
(
 Select
  Percentuali,
  right(CONVERT(varchar,Percentuali),3) soloDec,
  CHARINDEX('.', right(CONVERT(varchar,Percentuali),3)) PosizionePunto,     
 from
  mia_Tabella
 where
  Percentuali >0
 and
  CHARINDEX('.', right(CONVERT(varchar,Percentuali),3)) =2
)

Con questa seconda otteniamo il conteggio.

mercoledì 1 marzo 2017

How To: Run Edit and Manage DTS on Win 7

Avevo trovato una guida per poter far questa attività, ma a quanto pare i link risultano essere vecchi e non più funzionanti.

Per cui ripropongo qui la nuova versione sperando di aver trovato dei link permanenti.

In molte realtà persistono e sono ancora in uso parecchi DTS (SQL 2000) che tuttavia non sono sempre consultabili tramite i nuovi sistemi operativi.
Non riuscite ad accedervi? Questa è una breve guida di come accedere al  DTS Designer / Runtime lavorando su SQL 2005/2008 Studio / R2 Management.

Diciamo che bisogna risalire a qualche vecchio pacchetto (per cui mi auguro che MS mantenga i link) e alla fine di questo tortuoso giro si dovrebbe essere in grado di operare sui DTS. Io ci sono riuscito ma è piuttosto intricato e verosimilmente bisogna fare qualche prova in più.


Questo è il link alla documentazione ufficiale per SQL 2000 DTS - SQL 2008 R2. Ci sono 2 tipi
  1. Run-time support  (Execute DTS packages using dtsrun.exe)
  2. Design-time support (Import, open & design DTS packages in SSMS)
Install Support for Data Transformation Services Packages

Potrebbe non essere strettamente utile ma una lettura dovrebbe quanto meno aiutare a comprendere meglio la situazione.

Si parte da qui !

A) Download dei componenti aggiuntivi
Il primo pacchetto da installare è :

Download SQLServer2005_DTS.msi
https://www.microsoft.com/en-us/download/details.aspx?id=24793
(se non dovesse funzionare il link vi consiglio di cercare "SQLServer2005_DTS.msi" su Google).

il secondo dipende dal fatto che il sistema operativo sia a 64bit
Download SQLServer2005_BC.msi >
X86 http://go.microsoft.com/fwlink/?LinkId=123702&clcid=0x409
X64 http://go.microsoft.com/fwlink/?LinkId=123703&clcid=0x409
(se non dovesse funzionare il link vi consiglio di cercare il nome del pacchetto su Google).

B) Installazione dei componenti aggiuntivi
Installare entrambi i pacchetti stesso nell'ordine di presentazione prima ( SQLServer2005_DTS.msi, poi SQLServer2005_BC.msi).
Al termine dovreste trovare nei seguenti percorsi le DLL:
C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn\

Oppure potete trovarli qui:
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\

* binn è proprio con "2 N".

C) Impostare il path
Altro punto da non dimenticare, saltando questo verosimilmente il processo non funzionerà, per cui:


E' necessario settare il percorso in cui è stata effettuata l'installazione e in cui avete trovato la cartella Tools\BINN


A questo punto è necessario effettuare una copia a mano

32-bit (x86)
a. Copiare i files:
SEMSFC.DLL,
SQLGUI.DLL,
SQLSVC.DLL,
DA %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn
A %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\ folder

b. Copiare i files:
SEMSFC.RLL,
SQLGUI.RLL,
SQLSVC.RLL,
DA  %ProgramFiles%\Microsoft SQL Server\80\Tools\Binn\Resources\
A %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\1033\

(1033) rappresenta la lingua del pacchetto di installazione (dovrebbe esserci una sola cartella)



64-bit (x64)
a. Copiare i files:
SEMSFC.DLL,
SQLGUI.DLL,
SQLSVC.DLL,
DA %ProgramFiles(x86)%\Microsoft SQL Server\80\Tools\Binn
A %ProgramFiles%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\ folder

b. Copiare i files:
SEMSFC.RLL,
SQLGUI.RLL,
SQLSVC.RLL,
DA %ProgramFiles(x86)%\Microsoft SQL Server\80\Tools\Binn\Resources\
A %ProgramFiles(x86)%\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Resources\1033\
 
(1033) rappresenta la lingua del pacchetto di installazione (dovrebbe esserci una sola cartella)

Generalmente:
%ProgramFiles(x86)% –> C:\Program Files (x86)\
%ProgramFiles% –> C:\Program Files\

Riavviare...

E se non ci sono stati problemi, tutto dovrebbe funzionare.