Thursday 23 January 2014

SP_EXECUTESQL in SQLSERVER

EXEC SP_EXECUTESQL

SET NOCOUNT ON
GO
CREATE PROC usp_matrimony(@CNTRYNAME VARCHAR(30),@STNAME VARCHAR(30)=NULL,@LASSS INT=NULL,@LASDTRANS VARCHAR(10)=NULL)
AS
BEGIN
DECLARE @QRY NVARCHAR(MAX)=''
SET @QRY='select TOP 10 PERCENT C.Name AS CNAME,C.CountyID,CityID,T.StateID,T.Name AS SNAME,T.LSAD,T.LSAD_TRANS from County C 
INNER JOIN City T ON C.StateID=T.StateID WHERE C.Name=@CNTNAME'

IF(@STNAME IS NOT NULL)
SET @QRY=@QRY+' AND T.Name=@SNAME '

IF(@LASSS IS NOT NULL)
SET @QRY=@QRY+' AND T.LSAD=@LASSS '

IF(@LASDTRANS IS NOT NULL)
SET @QRY=@QRY+' AND T.LSAD_TRANS=@LASDTRANS'
 
EXEC SP_EXECUTESQL @QRY,N'@CNTNAME VARCHAR(30),@SNAME varchar(30)',@CNTNAME=@CNTRYNAME,@SNAME=@STNAME
 
END


EXEC usp_matrimony 'Mobile','lester'

Wednesday 15 January 2014

SIMPLE SSAS CUBE and DIMENSIONS

SIMPLE SSAS CUBE with default  DIMENSIONS created

Step 1: Open MSBI-->GO TO file-->select NEW PROJECT-->select ANALYSIS SERVICE as shown in figure-->NAME it as your choice (my self it is MySimpleCube)-->then click OK
then the wizard will be like this
Step 2:
Right click on data Sources -->select new (see below image)

Step 3: Drop down at provider select micro soft OLEDB Provider for sql server --> then OK(See below image)
Next select Server name -->Select Data base name-->Test connection --> click OK


Step 4: Select use the service account--> click NEXT
Step 5: Then click FINISH
Step 6: Right click on data source view --it shows the data source view wizard--> Click Next
Step 7: Select Use the service account--> click next
 Step 8: Select Any one of the table then click on Add related tables--> then click next
Step 9: Then Click on Finish
Step 10: Now the wizard will appear like below
Step 11:Now right click on cube--> select New Cube-->click next -->select use existing tables-->click Next
 Step 12: Directly click on Suggest (Default it will select the tables) --> click Next

Step 13: click Next
Step 14: Again Click next
Step 15: Before going to finish observe there is no underlying cubes or dimensions respectively-->next click finish
Step 16: now you will see the cube and dimensions generated automatically
Step 17: now Click on Process(Rounded symbol with red mark)--> then click Yes
Step 18:Click on Run
Step 19: After finishing process progress click on close
Step 20: Now click on Browser(Marked with red color)
Step 21: Drag and drop the measures at middle,Except that remaining you can drag and drop on Row filters and column filters and filter fields
 Finally solution will be like this (Observe above image)


Monday 13 January 2014

CTE & RECURSIVE CTE(Common Table Expression)

Common Table Expression
Simple CTE
Print 1 to N numbers
;
WITH CTE AS
(
    SELECT NoM=1
    UNION ALL
    SELECT NoM+1 FROM CTE WHERE NOM+1<=10
) SELECT * FROM CTE

Ans:



Find the Employees under manager 

;WITH X AS
(
    SELECT * FROM EMP WHERE mgr=7788
    UNION ALL
    SELECT e.* FROM x  INNER JOIN emp e ON e.empno=x.mgr
)
SELECT * FROM X

Ans:

Find Cumulative Salary of employees 

select SAL,(select SUM(sal) from emp e where e.empno<=a.empno)as CUM_SAL from emp a

Monday 6 January 2014

FUNCTION TO concatenate all COLUMNS OF a TABLE

FUNCTION TO concatenate all COLUMNS OF a TABLE 

USE AdventureWorksDW2008
GO

CREATE FUNCTION fn_columns( @tblname varchar(50))
returns varchar(MAX)
as
BEGIN
DECLARE @name VARCHAR(500)=''
SELECT @name=name+', '+@name FROM SYS.columns WHERE OBJECT_ID=OBJECT_ID(@tblname)
RETURN left(@NAME,len(@NAME)-1)
END

 SELECT NAME,dbo.fn_columns(name)as COLUMNS from sys.tables

Wednesday 1 January 2014

Script Task For Pickup txt file From Folder


Step 1:
Create Two variables as shown in figure
One for Fullpath STRING
Another for Validate INT




Step 2:
In script task Editor Select valiadate variable as a Readonly variable and other for Readand write variable

"D:\\ExcelDestination\\ExcelWorkBook_"+ (DT_STR, 4, 1252) DATEPART("yy" , GETDATE())  +
RIGHT("0" + (DT_STR, 2, 1252) DATEPART("mm" , GETDATE()), 2)  + RIGHT("0" + (DT_STR, 2, 1252) DATEPART("dd" , GETDATE()), 2)+".xlsx"


Step 3:
Click on edit script then write like as shown in last image
Save then click OK

using System.IO;

public void Main()
{
// TODO: Add your code here
            String str = Dts.Variables["User::FullPath"].Value.ToString();
            if (File.Exists(str))
            {
                Dts.Variables["User::Validate"].Value = 1;
            }
            MessageBox.Show(str);
            MessageBox.Show(Dts.Variables["User::FullPath"].Value.ToString());


Dts.TaskResult = (int)ScriptResults.Success;
}



Step 4:
Go to properties of Fullpath by selecting that variable and click F4---->Expression--->Write expression shown in image Expression Builder--->Evaluate expression







Step 5:
Click on presidence constraint--> Evaluation and Constraint-->@validate ==1
in other line keep @validate==0

EMP, DEPT Sample script

/****** Object:  Table [dbo].[DEPT]    Script Date: 19-05-2016 06:58:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET A...