Query utili in Adiuto

From RVM Wiki
Jump to navigation Jump to search

Creare una vista di una famiglia con i nomi dei campi uguali alle label

/*

Crea una vista denominata VA_$IDFAMIGLIA_CON_NOMI_CAMPI
con i nomi dei campi uguali alle label
Impostare l'ID della famiaglia nella variabile
#ID_FAMIGLIA

*/

declare  @ID_FAMIGLIA AS VARCHAR(MAX)
SELECT @ID_FAMIGLIA = '1001'

declare @columns AS VARCHAR(MAX)
SELECT @COLUMNS = NULL

select @COLUMNS = coalesce(@columns+',','') + CONCAT('F' ,FIFR, ' AS ''', Flab,'''') 
FROM [adiuto_data_B2B].[dbo].[TFIE]
where fidf=@ID_FAMIGLIA

/*
-- UNCOMMENT BLOCK FOR DEBUG
SELECT @COLUMNS

SELECT ' CREATE VIEW ' + 'VA' + @ID_FAMIGLIA + '_CON_NOMI_CAMPI' + ' AS ' +
' SELECT ' + @COLUMNS +
 ' FROM '+ ' VA'+  @ID_FAMIGLIA +
 ' WHERE FENA=-1;' 
*/

DECLARE @sql varchar(max)

SELECT @sql = ' CREATE VIEW ' + 'VA' + @ID_FAMIGLIA + '_CON_NOMI_CAMPI' + ' AS ' +
' SELECT ' + @COLUMNS +
 ' FROM '+ ' VA'+  @ID_FAMIGLIA +
 ' WHERE FENA=-1;' 

SELECT @sql

EXEC(@sql);

Cambiare il dominio email degli utenti

update TUSE
    set FEMA = replace(FEMA, '@oldmail.com', '@newmail.com')
    where FEMA like '%@oldmail.com';

Elencare i dettagli utenti

  • Attenzione: la tabella è la TUSE ma del DB META !
SELECT
	 FIUS
	,FUNA
	,FPAS
	,FEMA
FROM 
	[adiuto_meta].dbo.[TUSE]
WHERE
	FSTS <> 'ANNULLATO'
ORDER BY 
	FUNA

Elencare particolari documenti, con indicazioni di quelli cancellati

select 
	t1.FIDD,
	FENA+1 AS DEL,
	F1 AS UtenteIns,
	F11 As Nomefile,
	F2 AS DataIns,
	F6 As OraIns,
	F1003 AS CodCli,
	F1004 As RagoSoc,
	F1001 AS NumDoc,
	F1002 as DataDoc
from A1001 t1
INNER JOIN  TDOC t2 ON (t2.FIDD=t1.FIDD)
where 
	(F1001=195 OR F1001=2476 or f1001=4260 or f1001=58386279 or f1001=10458
	OR f1001=10766)
	AND
	F1010=2011
order by F1001,F1003,F2, FIDD

Cancellare i documenti presenti in Adiuto

  • Cancellare tutti i documenti dell’installazione:
UPDATE TDOC SET FENA=0
  • Cancellare i documenti di una sola famiglia:
UPDATE TDOC SET FENA=0 WHERE FIDF=iddellafamiglia(1001,1002)
  • Per ripristinarli:
SET FENA=-1

Cancellare documenti specifici

  • Selezionarli con questo:
select
 t2.FENA, t1.FIDD, t1.F1001, t1.F1010, t1.F1040, t1.F1002, 
 t1.F1003, t1.F1004
from
 a1009 t1
inner join 
 TDOC t2 
ON
 (t2.FIDD=t1.FIDD)
where
 SUBSTRING(f1040,1,1) = 'X' AND t2.FENA=-1
  • Cancellarli con
BERGIN TRANSACTION mytransaction
UPDATE
 a1009 AS t1
INNER JOIN
 TDOC AS t2 
ON
 (t2.FIDD=t1.FIDD)
SET
 t2.FENA=-1
WHERE
 SUBSTRING(f1040,1,1) = 'X' AND t2.FENA=-1
  • Se piace fare
COMMIT TRANSACTION mytransaction
  • Altrimenti
rollback mytransaction

Creare Viste

  • Fare la select tipo:
SELECT     
a.F1024 AS Numero_Doc_Orig, 
a.F1033 AS Data_Doc_Orig, 
a.F1001 AS Protocollo,
a.F1011 AS Registro_Iva, 
a.F1002 AS Data_Registrazione,
a.F1010 AS Anno,
a.F1003 AS Codice_Anagrafica,
a.F1004 AS Ragione_Sociale, 
a.F1005 AS Partita_Iva, 
a.F1006 AS Codice_Fiscale,
a.F1043 AS Iva_Blacklist,  
a.F1057 AS Sigla_Azienda, 
a.FIDD AS uuid
FROM
dbo.A1007 AS a 
INNER JOIN
dbo.TDOC AS t1 
ON 
a.FIDD = t1.FIDD AND t1.FENA <> 0
  • Creare la vista con:
CREATE VIEW
	 Sost_Fatture_Passive
AS
	SELECT     
	a.F1024 AS Numero_Doc_Orig, 
	a.F1033 AS Data_Doc_Orig, 
	a.F1001 AS Protocollo,
	a.F1011 AS Registro_Iva, 
	a.F1002 AS Data_Registrazione,
	a.F1010 AS Anno,
	a.F1003 AS Codice_Anagrafica,
	a.F1004 AS Ragione_Sociale, 
	a.F1005 AS Partita_Iva, 
	a.F1006 AS Codice_Fiscale,
	a.F1043 AS Iva_Blacklist,  
	a.F1057 AS Sigla_Azienda, 
	a.FIDD AS uuid
	FROM
	dbo.A1007 AS a 
	INNER JOIN
	dbo.TDOC AS t1 
	ON 
	a.FIDD = t1.FIDD AND t1.FENA <> 0

Elencare le Viste in un Database

  • Usare la query
SELECT name FROM sysobjects WHERE xtype = 'V' ORDER BY name

Elencare tutte le famiglie

select
	FFAN AS Famiglia,
	'A' + CONVERT(varchar(5), FIDF) AS Tabella
from
	TFAM
WHERE
	FENA=-1
ORDER BY
	Famiglia

Elencare i documenti non timbrati da AdiFeed

  • Da interfaccia web, si fa una ricerca con
APPROVATO=APPROVATO
TIMBRATURA = NEssun valore
  • La query per il numero di doc non timbrati è:
select 
	count(*) 
from
	a1007 t1
INNER JOIN  
	TDOC t2 
ON
	(t2.FIDD=t1.FIDD)
where 
	f1061 = 'APPROVATO' 
	and f1042 is null 
	and FENA != 0
  • Questa query elenca i documenti approvati e non timbrati, esclusi quelli di oggi:
select 
	t2.FIDD as FIDD
	, F2 AS DATAINS
	, 'D:/DOCUMENTALE/ARCHIVIOFTP' + F10 AS 'PATH'
	, F11 as 'FILENAME'
	--, F1 AS UTENTE
	, F1064 AS REGIVA
	,F1011 AS NREGIVA
	,F1035 AS TIPOREGIVA
	, F1001 as PROTO
	, F1002 AS DATAREG
	, F1033 AS DATADOC
	, F1024 AS NUMDOC
	, F1003 AS CODANA
	--, F1042 AS TIMBRO
	, F1057 AS AZI
	, F1062 AS APPROV
from
	a1007 t1
INNER JOIN  
	TDOC t2 
ON
	(t2.FIDD=t1.FIDD)
where 
	f1061 = 'APPROVATO' 
	and f1042 is null 
	and FENA != 0
	and F2 < (CONVERT(VARCHAR(8), GETDATE(), 112)-1)
ORDER BY
	DATADOC, CODANA, NUMDOC
--SELECT CONVERT(VARCHAR(8), GETDATE(), 112) AS [YYYYMMDD]

SQL Server Helper - Tips and Tricks - Date Formats

Elencare gli utenti con gli ID

  • La tabella è la TUSE
select * from TUSE;

Cambiare le impostazioni di Import

select distinct servername  from jlnk where servername='galarchive\ADIJED'
update jlnk set servername='galarchive' where servername='galarchive\ADIJED'

Trovare i riferimenti ad un DB in tutte le viste

  • Per vedere se ci sono viste che si riferiscono ad un DB esterno (es. DB_DOCUMENTALE):
select object_name(m.object_id), m.*
  from sys.sql_modules m
 where m.definition like N'%DB_DOCUMENTALE%'

Trovare numeri mancanti un una sequenza

  • Per trovare i protocolli mancanti di fatture passive in un registro iva:
SELECT SeqID AS MissingSeqID
FROM (SELECT ROW_NUMBER() OVER (ORDER BY column_id) SeqID from sys.columns) LkUp
LEFT JOIN dbo.FATTURE_PASSIVE_2016_A_1 t ON t.PROTO = LkUp.SeqID
WHERE t.PROTO is null and SeqID < (SELECT MAX(PROTO) FROM dbo.FATTURE_PASSIVE_2016_A_1)

Elencare le mail in uscita

select * from tmout where fsts = -1