Está en la página 1de 14

DBCC CHECKIDENT ('PRY_EQUIPOS', RESEED, 7)

----------------------------------------------usario no PMO
rtypaldos
gasnatural
-- actualizar cache Transact
teclado CTRL+Mays+R
\\180.81.7.15\Volume_1
credenciales:
aplicaciones
app2013
SET NOCOUNT ON;
SET NOCOUNT OF;
-- COUNT DE TRANSACCIONES
SELECT @@trancount
ROLLBACK TRANSACTION
if not exists (select name from sys.objects where name = 'PRY_DIRNIVELII_MIG_140
429')
and (@IdMacrocapitulo is null or t6.IdMacroCapitulo = @IdMacrocapitulo )
convert(MONEY, rsc.CosteFinalAnio) AS [Coste Final Ao en curso]
------------------------------------------------------------------------------------------------CURSOR ESTATICO
------------------------------------------------------------------------------------------------Declare @IdProyectoCurr int
Declare @IdProyectoPadre int
Declare @IdTipoEntidad int
DECLARE Entidades SCROLL CURSOR
FOR
Select idProyecto,isnull(Idproyectopadre,''),idTipoEntid
ad
From Fn_GetHijos_Planificacion(2246,5,default)
OPEN Entidades
FETCH Entidades
INTO @IdProyectoCurr
,@IdProyectoPadre
,@IdTipoEntidad
WHILE (@@FETCH_STATUS = 0)
BEGIN
print cast(@IdProyectoCurr as varchar)

FETCH NEXT FROM Entidades


INTO @IdProyectoCurr
,@IdProyectoPadre
,@IdTipoEntidad
END
CLOSE Entidades
DEALLOCATE Entidades

-- cierre de cursor
IF (cursor_status('global', N'@c_cliente') <> -3)
DEALLOCATE @c_cliente
-- CERRAR CURSOR
DECLARE @iCursor INT
SELECT @iCursor = count(*) from master..syscursors where cursor_name =
'cCursor'
IF @iCursor > 0
BEGIN
CLOSE cCursor
DEALLOCATE cCursor
End

-------------------------------------------------------------------------------------------------ESTRUCTURA BASICA DE PROCEDIMIENTO


-------------------------------------------------------------------------------------------------- =============================================
-- Author:
Fernando Jimnez Garcia
-- Create date: 24/07/2014
-- Description:
-- Parametros :
-- Modificacion:Marca Fecha
Descripcion
------- ---------- -------------------------------------------------------FJG001 30/06/2014 Mantis 13123
-- =============================================
CREATE PROCEDURE [dbo].[PRY_DesplazarFechas]
@p_IdProyecto int,
@p_NumDias int
AS
BEGIN
BEGIN TRANSACTION
BEGIN TRY
COMMIT TRANSACTION
END TRY
BEGIN CATCH

ROLLBACK TRANSACTION
--Capturar y devolver la excepcin
DECLARE @ErrorMessage NVARCHAR(4000) = (
(SELECT ERROR_PROCEDURE()) +' - ' + (SELECT ERRO
R_MESSAGE())
);
DECLARE @ErrorSeverity INT = (
SELECT ERROR_SEVERITY()
);
DECLARE @ErrorState INT = (
SELECT ERROR_STATE()
);
RAISERROR (
@ErrorMessage
,
-- Message text.
@ErrorSeverity
,
-- Severity.
@ErrorState -- State.
)
END CATCH
END

-------------------------------------------------------------------------------------------------ESTRUCTURA DE FUNCION ESCALAR


-------------------------------------------------------------------------------------------------- =============================================
-- Author: Fernando Jimenez
-- Create date: //2014
-- Description: Funcin que devuelve
-- =============================================
CREATE FUNCTION [dbo].[Fn_] (@ INT)
RETURNS nvarchar(max)
AS
BEGIN
-- Declare the return variable here
DECLARE @vDev nvarchar(max)
SELECT @vDev = DescEstado
FROM PRY_EstadosProyecto
WHERE codEstado = @p_IdAprobacion
-- Return the result of the function
RETURN @vDev
END
-------------------------------------------------------------------------------------------------

-ESTRUCTURA DE FUNCION DE TABLA


-------------------------------------------------------------------------------------------------- =============================================
-- Author: Fernando Jimenez
-- Create date: //2014
-- Description: Funcin que devuelve
-- =============================================
CREATE FUNCTION [dbo].[Fn_] (@IdProyecto INT)
RETURNS @CosteEsfuerzo TABLE (
CosteTotal
EsfuerzoTotal
INT,
FechaInicio
FechaFin
MejorPrevisionInicio
DATE,
MejorPrevisionFin
DATE
)

DECIMAL(19, 8),
DATE ,
DATE,

AS
BEGIN
INSERT INTO @CosteEsfuerzo
SELECT DISTINCT
CASE WHEN (p.idTipoEntidad = 1) THEN ISNULL((select SUM(ISNULL(p
ci.costeFinalProg,0)) FROM PRY_COSTES_INICIALES pci WHERE pci.IdProyecto = ci.Id
Proyecto), 0)
ELSE ISNULL((select MAX(CosteFinal) from PRY_ResumenCosteEsfuerz
o where IdProyecto = ci.IdProyecto),0) END as ImporteTotal,
CASE WHEN (p.idTipoEntidad = 1) THEN ISNULL((select SUM(ISNULL(p
ci.Esfuerzo_Inicial,0)) FROM PRY_COSTES_INICIALES pci WHERE pci.IdProyecto = ci.
IdProyecto), 0)
ELSE ISNULL((select MAX(EsfuerzoInicial) from PRY_ResumenCosteEs
fuerzo where IdProyecto = ci.IdProyecto),0) END as EsfuerzoTotal,
convert(nvarchar(12) , p.FechaInicio, 103),
convert(nvarchar(12) , p.FechaFin, 103),
convert(nvarchar(12) , p.MejorPrevisionInicio, 103),
convert(nvarchar(12) , p.MejorPrevisionFin, 103)
FROM PRY_COSTES_INICIALES ci
INNER JOIN PRY_PROYECTOS p ON p.IdProyecto = ci.IdProyecto
WHERE ci.idproyecto = @IdProyecto
RETURN
End
-------------------------------------------------------------------------------------------------bk de tabla
------------------------------------------------------------------------------------------------exec dbo.PRY_CrearBkTabla 'PRY_Programa',0
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[PRY_DIRG
EN_140123]') AND type in (N'U'))
Begin
select * INTO PRY_DIRGEN_140123 FROM PRY_DIRGEN

if @@ROWCOUNT = 0
Print'Error al crear el backUp de la tabla PRY_DIRGEN'
else
Print' BackUp de la tabla PRY_DIRGEN correcto.(PRY_DIRGE
N_140123)'
End
Else
Print' Ya existe un backUp de la tabla PRY_DIRGEN.(PRY_DIRGEN_14
0123)'

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------DECLARE @TestVal int


SET @TestVal = 3
SELECT CASE @TestVal
WHEN 1 THEN 'First'
WHEN 2 THEN 'Second'
WHEN 3 THEN 'Third'
ELSE 'Other'
END
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------comandos sql server :
http://www.1keydata.com/sql/alter-table-modify-column.html
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------WITH ESTRUCTURA_TMP(
Proyecto,
Entidad
) AS
(
SELECT distinct IdProyecto,IdTipoEntidad
FROM PRY_TAREAS
where IdProyecto = 38
)
SELECT Proyecto, Entidad
FROM ESTRUCTURA_TMP
GO

------------------------------------------------------------------------------------CURSOR DINAMICO

------------------------------------------------------------------------------------DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@ssql Nvarchar(500)
@tabla Nvarchar(500)
@Prod Nvarchar(5)
@Mes Nvarchar(2)
@Ao Nvarchar(4)
@vOutputDate
DATETIME
@pInputDate
DATETIME

Set @Ao = substring (db_name(),4,4)


print @Ao
select @tabla = 'ME_2012_02.INCENTIVOS.ME_REA_SATISFACCION'
SELECT @ssql = 'DECLARE my_cur CURSOR FOR SELECT distinct COD_AG
RUP_PROD, MAX(MES) FROM ' + @tabla +
' GROUP BY COD_AGRUP_PROD'
EXEC sp_executesql @ssql
Open my_cur
Fetch Next From my_cur Into @Prod ,@Mes
WHILE @@FETCH_STATUS = 0
BEGIN
print @Prod + ' - ' + @Mes
set @pInputDate = '01/'+ @MES +'/'+ @Ao +''
SET @vOutputDate = CAST(FLOOR(CAST(@pInputDate AS DECIMA
L(12, 5))) (DAY(@pInputDate) - 1
) AS DATETIME)
SET @vOutputDate = DATEADD(DD, -1, DATEADD(M, 1, @vOutpu
tDate))
print 'ultimo dia del mes '+ @MES +': ' + cast(@vOutputD
ate as varchar)
print 'ultimo dia del mes '+ @MES +': ' + convert(varcha
r(10),@vOutputDate ,103)
FETCH NEXT FROM my_cur INTO @Prod ,@Mes
END
CLOSE my_cur
DEALLOCATE my_cur
------------------------------------------------------------------------------------IF EXISTS
-------------------------------------------------------------------------------------

SELECT @sSql=' IF EXISTS (select * from '+ @Bd +'..sysobjects

WHERE XTYPE=''U'' AND NAME ='''+ @Seg + '_VAL_LIQUIDACI


ON'' )
drop table '+ @TabChequeos +''
PRINT @sSql
EXEC (@sSql)
SELECT @sSql='

CREATE TABLE '+ @TabChequeos +'(


[ID] FLOAT ,
[ESTADO] [varchar] (15) NOT NULL ,
[DESCRIPCION] [varchar] (500) NOT NULL ,
[TOTAL] FLOAT ,
[NUM_REG] FLOAT ,
[FECHA] [DATETIME]

) ON [PRIMARY] '
PRINT @sSql
EXEC (@sSql)
--Con clave primaria
ALTER TABLE [INCENTIVOS].[AU_Datos_Incentivos] WITH NOCHECK A
DD
CONSTRAINT [PK_AU_Datos_Incentivos] PRIMARY KEY NONCLUSTERED
(
[SEGMENTO],
[CATEGORIA],
[MATRICULA]
)ON [PRIMARY]

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- NUMERICOS
Set @ssql = 'Select @Count = Count(*) From Incentivos.ME_Log_Cargas Wher
e Carga = ''Productos'' And Fec_Carga ='+ @psEnv
Exec sp_executesql @ssql, N'@count int output', @Count output;
-- CADENAS
Set @ssql = 'select @TabPagos5 = NAME from '+ @bd +'..sysobjects WHERE X
TYPE=''U'' AND RIGHT(NAME,13)=''PAGOS_TOTALES'' '
print @ssql
Exec sp_executesql @ssql, N'@TabPagos5 Nvarchar(50) output', @TabPagos5
output;
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@ssql NVARCHAR(500)
@CATEGORIA NVARCHAR(2)
@MATRICULA NVARCHAR(7)
@SUMA_PESOS FLOAT
@tab VARCHAR(100)

SET @tab ='GE_2012_02.INCENTIVOS.GE_PP_DETALLE '


Set @ssql = 'Select @CATEGORIA = CATEGORIA , @MATRICULA = MATRICULA , @
SUMA_PESOS = SUM(PESO)
From ' + @tab +' WHERE MATRICULA =''T093329'' GROUP BY
CATEGORIA,MATRICULA '
PRINT @ssql
Exec sp_executesql @ssql, N'@CATEGORIA NVARCHAR (2)output,
@MATRICULA NVARCHAR (7)
output ,
@SUMA_PESOS FLOAT OUTPUT
,
@tab NVARCHAR (50) ', @
CATEGORIA output,@MATRICULA OUTPUT,@SUMA_PESOS OUTPUT,@tab ;
PRINT @CATEGORIA
PRINT @MATRICULA
PRINT CAST(@SUMA_PESOS AS VARCHAR)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Update GE_2012_02.INCENTIVOS.GE_PP_DETALLE
set SUMA_PESOS=(Select SUM(PESO)
from
GE_2012_02.INCENTIVOS.GE_PP_DETALLE h
where
h.Matricula=GE_2012_02.INCENTIVOS.GE_PP_
DETALLE.Matricula and
h.Categoria=GE_2012_02.INCENTIVOS.GE_PP_
DETALLE.Categoria )
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------comparacion de consultas : EXCEPT e INTERSECT
Devuelven valores distintos al comparar los resultados de dos consultas.
EXCEPT devuelve los valores distintos de la consulta izquierda que no se
encuentran en la consulta derecha.
INTERSECT devuelve los valores distintos devueltos por las consultas sit
uadas a los lados izquierdo y derecho del operando INTERSECT.
Las reglas bsicas para combinar los conjuntos de resultados de do
s consultas que utilizan EXCEPT o INTERSECT son las siguientes:

-------------------------------------------------------------------------------------------------EXISTS
------------------------------------------------------------------------------------------------IF not Exists(Select * from PRY_ACTUALIZACION_FACTURACION_FLAGS where IdProyect
o = 2288)
BEGIN
INSERT INTO PRY_ACTUALIZACION_FACTURACION_FLAGS
(IdProyecto)
values
(2288)
END
-- Existe un registro
if exists (select '1'
from PRY_TAREAS
where IdProyecto = @IdProyecto
and IdTarea = @idtarea
and IdTipologia_Tarea = 1)

SELECT idTarea, idPais, '' as '@idrecurso_insertado', t.IdProyecto,


'' as '@Descripcion', 0 Horas, 0 Coste, 0 HorasReal,
0 CosteReal, 0 HorasPendientes,
1 RepartoEsfuerzo, 1 RepartoInversion, GETDATE(), NULL,
0 CosteIniLocal, 0 CosteReaLocal
FROM PRY_TAREAS t,
PRY_COSTES_INICIALES ci
where t.IdProyecto= 576
and t.IdProyecto= ci.IdProyecto
and ci.Anio
= (select YEAR(p.fechainicio)
from PRY_PROYECTOS p
where IdProyecto = t.IdProyecto)
and Not Exists(select t.idtarea
from PRY_TAREAS_EQUIPOS_RECURSOS
where idTarea
= t.idTarea
and idPais
= ci.idpais
and IdProyecto

= 576)

SELECT a.FirstName, a.LastName


FROM Person.Person AS a
WHERE EXISTS
(SELECT *
FROM HumanResources.Employee AS b
WHERE a.BusinessEntityID = b.BusinessEntityID
AND a.LastName = 'Johnson');

--------------------------------------------------------------------------------

------------------FORMATEO FECHAS
------------------------------------------------------------------------------------------------DECLARE @fFinal datetime = '17/04/2013'
convert(varchar , @fFinal, 103) -> 17/04/2013
convert(varchar , @fFinal, 112) -> 20130417
-------------------------------------------------------------------------------------------------1FUNCIONES ESCALARES.
------------------------------------------------------------------------------------------------Create function IVA (@cantidad money)
Returns money
As
Begin
Declare @resultado money
Set @resultado = @cantidad
End

0.12

Consumir:
Select productos,precio,dbo.IVA(precio) as Iva
From productos
-------------------------------------------------------------------------------------------------- 2-FUNCION VALORES DE VARIAS INSTRUCCIONES
------------------------------------------------------------------------------------------------Create Function ListadoPais(@pais varchar(100))
Returns @clientes table
(
customerId varchar(5),
companyname varchar(50),
contactname varchar(100)
country varchar(100)
)
as
begin
insert @clientes select customerId, companyname, contactname, c
ountry
from customer where country = @pais
return
end
consumir:
select from dbo.listadopais( Germany )
-------------------------------------------------------------------------------------------------- 3 FUNCIONES DE VALORES DE TABLA EN LINEA

------------------------------------------------------------------------------------------------Create Function ListadoPais2(@pais varchar(100))


Returns table
As
return
(
select customerId, companyname, contactname, country
from customer where country = @pais)
consumir:
select
from dbo.listadopais2( Germany )

-------------------------------------------------------------------------------------------------- TRIGGER
------------------------------------------------------------------------------------------------CREATE TRIGGER NOMBRE_TRIGER
ON NOMBRE_TABLA
AFTER (INSERT,UPDATE,DELETE)
AS
BEGIN
CUERPO DEL TRIGGER
END
-------------------------------------------------------------------------------------------------not exists
------------------------------------------------------------------------------------------------SELECT IdDirNivelII
FROM PRY_DIRNIVELII
WHERE NOT EXISTS
(SELECT *
FROM PRY_PROYECTOS
WHERE IdDirNivelII = PRY_DIRNIVELII.IdDirNivelII
and End_date is null)
-------------------------------------------------------------------------------------------------OPENROWSET con ficheros excel
------------------------------------------------------------------------------------------------INSERT INTO MyTable
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\test.xlsx', [NombreHoja$])
Dependiendo el tipo de archivo (extensin)
File Type (extension)
operties

Extended Pr

-------------------------------------------------------------------------------------------Excel 97-2003 Workbook (.xls)


"Excel 8.0"
Excel 2007-2010 Workbook (.xlsx)
"Excel 12.0 Xml"
Excel 2007-2010 Macro-enabled workbook (.xlsm)
"Excel 12.0 Mac
ro"
Excel 2007-2010 Non-XML binary workbook (.xlsb)
"Excel 12.0"
-------------------------------------------------------------------------------------------------FOREIGN KEY
------------------------------------------------------------------------------------------------alter table dbo.OOEE_ORDENES_ENTREGA
add constraint FK_OOEE_ORDENES_ENTREGA_OOEE_OOEE_VALIDACIONES
foreign key (CodValidacion)
references dbo.OOEE_VALIDACIONES (CodValidacion)
-------------------------------------------------------------------------------------------------CREATE CON PRYMARY Y FOREIGN KEY
------------------------------------------------------------------------------------------------CREATE TABLE [dbo].[OOEE_LOG_CARGAS](
[idCarga] [int] NOT NULL,
[NomFichero] [nvarchar](100) NOT NULL,
[Fecha] [datetime] NOT NULL,
[RegEnviados] [int] NULL,
[RegVinculados] [int] NULL,
[RegNoVinculados] [int] NULL,
[Estado] [nvarchar](100) NULL,
[Observaciones] [nvarchar](250) NULL,
[CodDocCompras] [nvarchar](10) NOT NULL,
[CodPosicion] [int] NOT NULL,
PRIMARY KEY ([CodDocCompras],[CodPosicion],[NomFichero],[idCarga]),
FOREIGN KEY ([CodDocCompras],[CodPosicion],[NomFichero],[idCarga]) REFER
ENCES OOEE_FICHEROS_ENTREGA_HIST([CodDocCompras],[CodPosicion],[NomFichero],[idC
arga]),
FOREIGN KEY ([CodDocCompras],[CodPosicion],[NomFichero],[idCarga]) REFER
ENCES OOEE_ORDENES_ENTREGA ([CodDocCompras],[CodPosicion],[NomFichero],[idCarga]
)
)
-------------------------------------------------------------------------------------------------Crear tabla, con estructura de otra
------------------------------------------------------------------------------------------------declare @TArea Table (IdArea int)
if @IdArea is null
set @sqlArea = 'Select IdArea from Areas Where PPT = 1'
else

set @sqlArea = 'Select IdArea from Areas Where IdArea = ' + CONVERT(var
char(10), @IdArea)
insert into @TArea
execute sp_executesql @sqlArea
--Insert en la Tabla ICP_PROYECTOS
declare @TPryProyectos IcpProyectos
insert into @TPryProyectos
exec dbo.PPT_Informe_GetProyectosFromPRY @IdComite
-------------------------------------------------------------------------------------------------Consulta de CECO
------------------------------------------------------------------------------------------------select pp.IdProyecto,pp.CodAreaOTrabajo,cc.*
FROM PRY_PROYECTOS pp
INNER JOIN CECO cc ON cc.IdCECO = pp.CodAreaOTrabajo
and pp.Anio = cc.Anio
-------------------------------------------------------------------------------------------------Extraer el area de un proyecto
-----------------------------------------------------------------------------------------------select pp.IdProyecto,pp.CodAreaOTrabajo,cc.Areas ,ar.Chtto as Areas_Chtto--, cc.
*
FROM PRY_PROYECTOS pp
INNER JOIN CECO cc ON cc.IdCECO = pp.CodAreaOTrabajo
inner join Areas ar on ar.IdArea = cc.Areas
where cc.Areas = 38
and pp.IdProyecto= 1540
-- and pp.Anio = cc.Anio
-------------------------------------------------------------------------------------------------tabla temporal
-----------------------------------------------------------------------------------------------create table #Tabla_HorasPlanif (Equipo Int,
Anio int ,Resultado numeric(18,2
))
insert into #Tabla_HorasPlanif exec PRY_GetHorasGruposAnios @idproyecto, @idPai
s

-------------------------------------------------------------------------------------------------SCRIPT CON MANEJADOR DE ERRORES


-----------------------------------------------------------------------------------------------BEGIN TRY
BEGIN TRANSACTION

COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
-------------------------------------------------------------------------------------------------COMITES por mes (el maximo)
-----------------------------------------------------------------------------------------------Declare @IdAreaComite int
Declare @IdMacrocapitulo int
Declare @Tipo int = 1
select max(IdComite)comite ,left(convert(varchar , fecha, 112),6)
from ICP_COMITE t
where t.Tipo = isnull(@Tipo, t.tipo)
and (@IdAreaComite is null or t.IdArea = @IdAreaComite )
and (@IdMacrocapitulo is null or t.IdMacrocapitulo = @IdMacrocapitulo)
And YEAR(t.Fecha) = YEAR(GETDATE())
group by left(convert(varchar , fecha, 112),6)
-------------------------------------------------------------------------------------------------APROBADO Y COMPROMETIDO DE UN PROYECTO
-----------------------------------------------------------------------------------------------,dbo.Fn_CambioImporteAnioMes(ISNULL(dbo.Fn_CalculaImporteAprobadoPry(IdProyecto,
NULL, @Pais), 0), ISNULL(@Moneda, Moneda), Moneda, GETDATE())
AS ImporteAprobado
,dbo.Fn_CambioImporteAnioMes(ISNULL(dbo.Fn_CalculaImporteComprometidoPry(IdProye
cto, NULL, @Pais), 0), ISNULL(@Moneda, Moneda), Moneda, GETDATE())
AS ImporteComprometido

-------------------------------------------------------------------------------------------------CREAR SECUENCIAL DINAMICO EN TRANSACT (Rownum de PL)


-----------------------------------------------------------------------------------------------''R'' + CAST(ROW_NUMBER() OVER (ORDER BY IdProyRiesgo) AS NVARCHAR) AS NumRie
sgoPry,
-------------------------------------------------------------------------------------------------NO DINAMICA PERO CON PARAMETRO
-----------------------------------------------------------------------------------------------and ((@AllHitos = 0 and (pht.SNPaP = 1 or pht.codHito = 0 OR ph.IdHitoTipo = 0))
OR @AllHitos = 1) /*FJG002*/

También podría gustarte