通過使用此查詢我可以得到我想要的結果,但現在有另一個有問題的while
條件。如何使用條件選擇查詢
SELECT distinct
concat([Segment_0], '-' , [Segment_1], '-',[Segment_2]) As 'AcctCode',
T1.[AcctName],
T2.[Name],
concat(T3.[Code],'-',T3.[Name]),
T0.[DebLTotal] AS 'ANNUAL BUDGET KSH',
T0.[DebRLTotal] AS 'UTILISED BUDGET',
T3.[Name] ,
T3.[Code],
(T0.[DebLTotal] - T0.[DebRLTotal]) AS 'BALANCE BUDGET',
(SELECT concat(T3.Code , '-', T3.[Name]) WHERE T3.SegmentId = '1') AS 'Project',
(SELECT concat(T3.Code , '-', T3.[Name]) WHERE T3.SegmentId = '2') AS 'Distt'
FROM
OBGT T0
INNER JOIN
OACT T1 ON T0.[AcctCode] = T1.[AcctCode]
INNER JOIN
OBGS T2 ON T0.[Instance] = T2.[AbsId]
INNER JOIN
OASC T3 ON (T3.SegmentId = '1' AND T3.Code = [Segment_1])
OR (T3.SegmentId = '2' AND T3.Code = [Segment_2])
如果我把condition
的where
子句中像Project = '100' and Distt = '001'
,它給我的數據。它應該在那裏。
concat([Segment_0], '-' , [Segment_1], '-', [Segment_2])
也應根據病情,因爲我們正在加入SegmentId
到這些列改變。
請幫
USE [RCTP_NGO]
GO
/****** Object: Table [dbo].[OACT] Script Date: 06/Nov/2015 4:28:56 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[OACT](
[AcctCode] [nvarchar](15) NOT NULL,
[AcctName] [nvarchar](100) NULL,
[CurrTotal] [numeric](19, 6) NULL,
[EndTotal] [numeric](19, 6) NULL,
[Finanse] [char](1) NULL,
[Groups] [nvarchar](8) NULL,
[Budget] [char](1) NULL,
[Frozen] [char](1) NULL,
[Free_2] [char](1) NULL,
[Postable] [char](1) NULL,
[Fixed] [char](1) NULL,
[Levels] [smallint] NULL,
[ExportCode] [nvarchar](10) NULL,
[GrpLine] [int] NULL,
[FatherNum] [nvarchar](15) NULL,
[AccntntCod] [nvarchar](15) NULL,
[CashBox] [char](1) NULL,
[GroupMask] [smallint] NULL,
[RateTrans] [char](1) NULL,
[TaxIncome] [char](1) NULL,
[ExmIncome] [char](1) NULL,
[ExtrMatch] [int] NULL,
[IntrMatch] [int] NULL,
[ActType] [char](1) NULL,
[Transfered] [char](1) NULL,
[BlncTrnsfr] [char](1) NULL,
[OverType] [char](1) NULL,
[OverCode] [nvarchar](8) NULL,
[SysMatch] [int] NULL,
[PrevYear] [char](1) NULL,
[ActCurr] [nvarchar](3) NULL,
[RateDifAct] [nvarchar](15) NULL,
[SysTotal] [numeric](19, 6) NULL,
[FcTotal] [numeric](19, 6) NULL,
[Protected] [char](1) NULL,
[RealAcct] [char](1) NULL,
[Advance] [char](1) NULL,
[CreateDate] [datetime] NULL,
[UpdateDate] [datetime] NULL,
[FrgnName] [nvarchar](100) NULL,
[Details] [nvarchar](254) NULL,
[ExtraSum] [numeric](19, 6) NULL,
[Project] [nvarchar](20) NULL,
[RevalMatch] [char](1) NULL,
[DataSource] [char](1) NULL,
[LocMth] [char](1) NULL,
[MTHCounter] [int] NULL,
[BNKCounter] [int] NULL,
[UserSign] [smallint] NULL,
[LocManTran] [char](1) NULL,
[LogInstanc] [int] NULL,
[ObjType] [nvarchar](20) NULL,
[ValidFor] [char](1) NULL,
[ValidFrom] [datetime] NULL,
[ValidTo] [datetime] NULL,
[ValidComm] [nvarchar](30) NULL,
[FrozenFor] [char](1) NULL,
[FrozenFrom] [datetime] NULL,
[FrozenTo] [datetime] NULL,
[FrozenComm] [nvarchar](30) NULL,
[Counter] [int] NULL,
[Segment_0] [nvarchar](20) NULL,
[Segment_1] [nvarchar](20) NULL,
[Segment_2] [nvarchar](20) NULL,
[Segment_3] [nvarchar](20) NULL,
[Segment_4] [nvarchar](20) NULL,
[Segment_5] [nvarchar](20) NULL,
[Segment_6] [nvarchar](20) NULL,
[Segment_7] [nvarchar](20) NULL,
[Segment_8] [nvarchar](20) NULL,
[Segment_9] [nvarchar](20) NULL,
[FormatCode] [nvarchar](210) NULL,
[CfwRlvnt] [char](1) NULL,
[ExchRate] [char](1) NULL,
[RevalAcct] [nvarchar](15) NULL,
[LastRevBal] [numeric](19, 6) NULL,
[LastRevDat] [datetime] NULL,
[DfltVat] [nvarchar](8) NULL,
[VatChange] [char](1) NULL,
[Category] [int] NULL,
[TransCode] [nvarchar](4) NULL,
[OverCode5] [nvarchar](8) NULL,
[OverCode2] [nvarchar](8) NULL,
[OverCode3] [nvarchar](8) NULL,
[OverCode4] [nvarchar](8) NULL,
[DfltTax] [nvarchar](8) NULL,
[TaxPostAcc] [char](1) NULL,
[AcctStrLe] [nvarchar](2) NULL,
[MeaUnit] [nvarchar](10) NULL,
[BalDirect] [nvarchar](4) NULL,
[UserSign2] [smallint] NULL,
[PlngLevel] [nvarchar](2) NULL,
[MultiLink] [char](1) NULL,
[PrjRelvnt] [char](1) NULL,
[Dim1Relvnt] [char](1) NULL,
[Dim2Relvnt] [char](1) NULL,
[Dim3Relvnt] [char](1) NULL,
[Dim4Relvnt] [char](1) NULL,
[Dim5Relvnt] [char](1) NULL,
[AccrualTyp] [char](1) NULL,
[DatevAcct] [int] NULL,
[DatevAutoA] [char](1) NULL,
[DatevFirst] [char](1) NULL,
[SnapShotId] [int] NULL,
[PCN874Rpt] [char](1) NULL,
[SCAdjust] [char](1) NULL,
[BPLId] [int] NULL,
[BPLName] [nvarchar](100) NULL,
[SubLedgerN] [nvarchar](60) NULL,
[VATRegNum] [nvarchar](32) NULL,
[ActId] [nvarchar](210) NOT NULL,
[ClosingAcc] [nvarchar](15) NULL,
[PurpCode] [nvarchar](2) NULL,
[RefCode] [nvarchar](30) NULL,
[U_COR_FIN_Cls] [nvarchar](32) NULL,
CONSTRAINT [OACT_PRIMARY] PRIMARY KEY CLUSTERED
(
[AcctCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[OASC] Script Date: 06/Nov/2015 4:28:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OASC](
[SegmentId] [smallint] NOT NULL,
[Code] [nvarchar](20) NOT NULL,
[Name] [nvarchar](100) NULL,
[ShortName] [nvarchar](10) NULL,
[UserSign] [smallint] NULL,
CONSTRAINT [OASC_PRIMARY] PRIMARY KEY CLUSTERED
(
[SegmentId] ASC,
[Code] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[OBGS] Script Date: 06/Nov/2015 4:28:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[OBGS](
[AbsId] [int] NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[BaseId] [int] NULL,
[InitRate] [numeric](19, 6) NULL,
[Locked] [char](1) NULL,
[FinancYear] [datetime] NOT NULL,
[IsMain] [char](1) NULL,
[DataSource] [char](1) NULL,
[RoundSys] [smallint] NULL,
[UserSign] [smallint] NULL,
[OcrCode] [nvarchar](8) NULL,
[OcrCode2] [nvarchar](8) NULL,
[OcrCode3] [nvarchar](8) NULL,
[OcrCode4] [nvarchar](8) NULL,
[OcrCode5] [nvarchar](8) NULL,
[PrjCode] [nvarchar](20) NULL,
[U_COR_OcrCode] [nvarchar](200) NULL,
[U_COR_PrjCode] [nvarchar](200) NULL,
CONSTRAINT [OBGS_PRIMARY] PRIMARY KEY CLUSTERED
(
[AbsId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object: Table [dbo].[OBGT] Script Date: 06/Nov/2015 4:28:57 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[OBGT](
[AbsId] [int] NOT NULL,
[AcctCode] [nvarchar](15) NOT NULL,
[BgdCode] [int] NULL,
[FatherCode] [nvarchar](15) NULL,
[FthrPrcnt] [numeric](19, 6) NULL,
[DebLTotal] [numeric](19, 6) NULL,
[CredLTotal] [numeric](19, 6) NULL,
[DebSTotal] [numeric](19, 6) NULL,
[CredSTotal] [numeric](19, 6) NULL,
[DebRLTotal] [numeric](19, 6) NULL,
[CrdRLTotal] [numeric](19, 6) NULL,
[DebRSTotal] [numeric](19, 6) NULL,
[CrdRSTotal] [numeric](19, 6) NULL,
[FtrIDRLSum] [numeric](19, 6) NULL,
[FtrIDRSSum] [numeric](19, 6) NULL,
[FtrICRLSum] [numeric](19, 6) NULL,
[FtrICRSSum] [numeric](19, 6) NULL,
[FtrODRLSum] [numeric](19, 6) NULL,
[FtrOCRLSum] [numeric](19, 6) NULL,
[FtrODRSSum] [numeric](19, 6) NULL,
[FtrOCRSSum] [numeric](19, 6) NULL,
[FinancYear] [datetime] NOT NULL,
[Instance] [int] NOT NULL,
[UserSign] [smallint] NULL,
[SCNCounter] [smallint] NULL,
CONSTRAINT [OBGT_PRIMARY] PRIMARY KEY CLUSTERED
(
[AbsId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Finanse] DEFAULT ('N') FOR [Finanse]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Budget] DEFAULT ('N') FOR [Budget]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Frozen] DEFAULT ('N') FOR [Frozen]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Postable] DEFAULT ('Y') FOR [Postable]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Levels] DEFAULT ((2)) FOR [Levels]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_CashBox] DEFAULT ('N') FOR [CashBox]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_GroupMask] DEFAULT ((1)) FOR [GroupMask]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_RateTrans] DEFAULT ('Y') FOR [RateTrans]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_TaxIncome] DEFAULT ('N') FOR [TaxIncome]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_ExmIncome] DEFAULT ('N') FOR [ExmIncome]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_ActType] DEFAULT ('N') FOR [ActType]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Transfered] DEFAULT ('N') FOR [Transfered]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_BlncTrnsfr] DEFAULT ('N') FOR [BlncTrnsfr]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_OverType] DEFAULT ('N') FOR [OverType]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_SysMatch] DEFAULT ((-1)) FOR [SysMatch]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_PrevYear] DEFAULT ('N') FOR [PrevYear]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Protected] DEFAULT ('N') FOR [Protected]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_RealAcct] DEFAULT ('N') FOR [RealAcct]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Advance] DEFAULT ('Y') FOR [Advance]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_RevalMatch] DEFAULT ('N') FOR [RevalMatch]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_DataSource] DEFAULT ('N') FOR [DataSource]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_LocMth] DEFAULT ('Y') FOR [LocMth]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_LocManTran] DEFAULT ('N') FOR [LocManTran]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_LogInstanc] DEFAULT ((0)) FOR [LogInstanc]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_ObjType] DEFAULT ('1') FOR [ObjType]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_ValidFor] DEFAULT ('N') FOR [ValidFor]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_FrozenFor] DEFAULT ('N') FOR [FrozenFor]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Counter] DEFAULT ((0)) FOR [Counter]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_CfwRlvnt] DEFAULT ('N') FOR [CfwRlvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_ExchRate] DEFAULT ('Y') FOR [ExchRate]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_VatChange] DEFAULT ('Y') FOR [VatChange]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_TaxPostAcc] DEFAULT ('N') FOR [TaxPostAcc]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_BalDirect] DEFAULT ('0') FOR [BalDirect]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_MultiLink] DEFAULT ('N') FOR [MultiLink]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_PrjRelvnt] DEFAULT ('N') FOR [PrjRelvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Dim1Relvnt] DEFAULT ('N') FOR [Dim1Relvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Dim2Relvnt] DEFAULT ('N') FOR [Dim2Relvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Dim3Relvnt] DEFAULT ('N') FOR [Dim3Relvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Dim4Relvnt] DEFAULT ('N') FOR [Dim4Relvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_Dim5Relvnt] DEFAULT ('N') FOR [Dim5Relvnt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_AccrualTyp] DEFAULT ('N') FOR [AccrualTyp]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_DatevAutoA] DEFAULT ('N') FOR [DatevAutoA]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_DatevFirst] DEFAULT ('Y') FOR [DatevFirst]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_SnapShotId] DEFAULT ((0)) FOR [SnapShotId]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_PCN874Rpt] DEFAULT ('N') FOR [PCN874Rpt]
GO
ALTER TABLE [dbo].[OACT] ADD CONSTRAINT [DF_OACT_SCAdjust] DEFAULT ('N') FOR [SCAdjust]
GO
ALTER TABLE [dbo].[OBGS] ADD CONSTRAINT [DF_OBGS_Locked] DEFAULT ('N') FOR [Locked]
GO
ALTER TABLE [dbo].[OBGS] ADD CONSTRAINT [DF_OBGS_IsMain] DEFAULT ('N') FOR [IsMain]
GO
ALTER TABLE [dbo].[OBGS] ADD CONSTRAINT [DF_OBGS_DataSource] DEFAULT ('N') FOR [DataSource]
GO
ALTER TABLE [dbo].[OBGS] ADD CONSTRAINT [DF_OBGS_RoundSys] DEFAULT ((0)) FOR [RoundSys]
GO
ALTER TABLE [dbo].[OBGT] ADD CONSTRAINT [DF_OBGT_Instance] DEFAULT ((1)) FOR [Instance]
GO
請格式化您的SQL代碼。 – pedram