Labels

Apache Hadoop (3) ASP.NET (2) AWS S3 (2) Batch Script (3) BigQuery (21) BlobStorage (1) C# (3) Cloudera (1) Command (2) Data Model (3) Data Science (1) Django (1) Docker (1) ETL (7) Google Cloud (5) GPG (2) Hadoop (2) Hive (3) Luigi (1) MDX (21) Mongo (3) MYSQL (3) Pandas (1) Pentaho Data Integration (5) PentahoAdmin (13) Polybase (1) Postgres (1) PPS 2007 (2) Python (13) R Program (1) Redshift (3) SQL 2016 (2) SQL Error Fix (18) SQL Performance (1) SQL2012 (7) SQOOP (1) SSAS (20) SSH (1) SSIS (42) SSRS (17) T-SQL (75) Talend (3) Vagrant (1) Virtual Machine (2) WinSCP (1)

Wednesday, November 24, 2010

Query to add Multi List Parameter in SSRS 2005 Reporting Server

 Step 1: Add a Table-valued function 'charlist_to_table' in your db.

 Check for function charlist_to_table or create one using below Stored Proc:

USE [Timesheet]
GO
/****** Object:  UserDefinedFunction [dbo].[charlist_to_table]    Script Date: 11/24/2010 18:47:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[charlist_to_table]
    (@list ntext,
    @delimiter nchar(1) = N',')
RETURNS @tbl TABLE (listpos int IDENTITY(1, 1) NOT NULL,

            str varchar(4000),

            nstr nvarchar(2000)) AS

            BEGIN

            DECLARE @pos int,

            @textpos int,

            @chunklen smallint,

            @tmpstr nvarchar(4000),

            @leftover nvarchar(4000),

            @tmpval nvarchar(4000)

            SET @textpos = 1

            SET @leftover = ''

            WHILE @textpos <= datalength(@list) / 2

            BEGIN

            SET @chunklen = 4000 - datalength(@leftover) / 2

            SET @tmpstr = @leftover + substring(@list, @textpos, @chunklen)

            SET @textpos = @textpos + @chunklen

            SET @pos = charindex(@delimiter, @tmpstr)

            WHILE @pos > 0

            BEGIN

            SET @tmpval = ltrim(rtrim(left(@tmpstr, @pos - 1)))

            INSERT @tbl (str, nstr) VALUES(@tmpval, @tmpval)

            SET @tmpstr = substring(@tmpstr, @pos + 1, len(@tmpstr))

            SET @pos = charindex(@delimiter, @tmpstr)

            END

            SET @leftover = @tmpstr

            END

            INSERT @tbl(str, nstr) VALUES (ltrim(rtrim(@leftover)),

            ltrim(rtrim(@leftover)))

RETURN

END




Step 2: Call that function in your Stored Proc as shown in sample procedure below:


USE [Timesheet]
GO
/****** Object:  StoredProcedure [dbo].[sp_CalculateProjectRevenue]    Script Date: 11/24/2010 18:28:24 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:       
-- Create date:
-- Description:   
-- =============================================
ALTER PROCEDURE [dbo].[sp_CalculateProjectRevenue]
    @FromDate DATETIME = NULL,
    @ToDate DATETIME = NULL,
    @ProjectID VARCHAR(2000)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements. --165118
    SET NOCOUNT ON;
BEGIN

  SELECT    Main.TrackID
            ,Main.ProjectName
            ,Main.ProjectID
            ,Main.EstimationNo
            ,Main.EstRevenue
            ,Main.TotalHours
            ,Projects.IsBillable AS ProjBill
            ,Main.RegionID
            ,Main.Firstname
            ,Main.ResourceID
            ,CONVERT(VARCHAR(10),Main.Datee,101) AS DATED
            --,Main.IsBillable
            ,Tasks.TaskName
            ,Timetrack.Description
            ,CASE Main.IsBillable WHEN 1 THEN Main.Duration ELSE 0 END AS BillHrs
            ,CASE Main.IsBillable WHEN 0 THEN Main.Duration ELSE 0 END AS NonBillHrs
            ,ISNULL(Main.HourlyRate,0) AS HourlyRate
            ,ISNULL(Main.OffshoreRate,0) AS OffshoreRate
            ,ISNULL(Main.OnsiteRate,0) AS OnsiteRate
           
FROM Main
WHERE Main.Datee >= @FromDate AND Main.Datee <= @ToDate
        AND Main.ProjectID  IN (SELECT CAST([str]AS INT) FROM charlist_to_table(@ProjectID,','))

END
SET NOCOUNT OFF;
END








Regards

Mahadevan

1 comment:

  1. 世界的にシステムエンジニアの需要が高まる中、通商産業省の調査によると、日本では2035年までに約70LのITエンジニアが不足すると言われています。

    社内エンジニアの不足から、海外のエンジニアを活用してシステム開発などを行う「オフショアシステム開発」が近年注目されています。

    システムオフショア開発チームとは?

    オフショアシステム開発とは、海外の開発会社を活用してアプリケーション開発を行う手法です。

    オフショア開発手法は、ベトナム、台湾、インドなどのオフショア開発国で、低コストで非常に優秀な人材を活用できるため、非常に費用対効果の高い方法です。

    オフショア開発国はアジアを中心にHUG数が増加しており、インド、ベトナム、台湾、中国など海外にも多くの日本の機関が進出しています。
    また、海外システム開発方式と呼ばれるオフショア開発に似たものがあります。

    海外など遠方の会社に依頼する場合は「オフショア開発」、東京の地方に会社を依頼する場合は「ニアショア開発会社」です。

    オフショア システム 開発

    ReplyDelete