|
Question : How to resolve the SQL error: "ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator"?
|
|
Do you know how I can resolve the following error in the stored procedure that follows: I created an Access application with Access as the front end and SQL Server 2005 as the back end database.
Msg 104, Level 16, State 1, Procedure procSpLN, Line 17 ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator. Msg 104, Level 16, State 1, Procedure procSpLN, Line 18 ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator. ---------------------------------------
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go
ALTER PROCEDURE [dbo].[procSpLN] @RptYear int AS If Exists(SELECT * FROM dbo.SYSOBJECTS WHERE NAME = 'tblSpLN' AND TYPE = 'U') DROP TABLE dbo.tblSpLN Declare @FallCycle Bit Declare @MutualFS int Declare @BondsFS int Declare @CashFS int Declare @StocksFS int Declare @IRAFS int -- Assign the DE Values to variables SELECT @FallCycle = FallCycle, @MutualFS = MutualFS, @BondsFS = BondsFS, @CashFS = CashFS, @StocksFS = StocksFS, @IRAFS = IRAFS FROM dbo.tblStatesAll WHERE StateFS = 'DE' SELECT DISTINCT CASE WHEN C.TaxIDInd = '1' THEN ' ' ELSE UPPER(C.FirstName) END AS [1st First Name], UPPER (C.MiddleInitial) AS [1st Mid], CASE WHEN C.TaxIDInd = '1' THEN C.FirstName ELSE UPPER(C.LastName) END AS [1st Last Name], UPPER(C.SecondNameFirst) As [2nd First Name], UPPER(C.SecondNameMid) AS [2nd Mid], UPPER(C.SecondNameLast) AS [2nd Last Name], UPPER(C.StreetAddr1) AS [Address 1], UPPER (C.StreetAddr2) AS [Address 2], UPPER(C.City) AS City, UPPER(C.ResStateCode) AS [State], C.Zip AS Zip, CASE WHEN LEN(C.SSN) = 0 THEN C.TaxID ELSE C.SSN END AS [SSN/Tax ID], Right(C.OfficeNumber,3) + ' ' + C.CustomerNumber AS [Account Number], C.AcctExec AS [FA Number], C.DateOfBirth AS [Date Of Birth] INTO dbo.tblSpLN FROM dbo.tblStatesAll AS S INNER JOIN dbo.tblCustomersNew AS C ON S.StateFS = C.ResStateCode INNER JOIN dbo.tblProductsNew AS P ON C.CustomerNumber = P.CustomerNumber AND C.OfficeNumber = P.OfficeNumber WHERE (S.FallCycle= 0) AND S.StateFS <> 'NY' AND C.RedFlag = 'N' AND LEN(P.InsuranceContract) = 0 AND ((P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - S.MutualFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - S.MutualFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity = 0 AND P.CashBalance = 0) AND ((LEN(PlanNumber) = 0) OR (PlanNumber = 'NETWORKED') OR (ISNUMERIC (PLANNUMBER) = 1))) OR -- Other is Included for Lexis Nexis as well as Insurance Contracts (P .PropertyType='CASH' AND C.DateLost <= CAST((@RptYear - S.CashFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='EQUITY' AND C.DateLost <= CAST((@RptYear - S.StocksFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='FIXED INCOME' AND C.DateLost <= CAST((@RptYear - S.BondsFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR --IRA WITH VALID DATE OF BIRTH (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - S.IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - S.IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity = 0 AND P.CashBalance = 0) AND ((LEN(PlanNumber) = 0) OR (PlanNumber = 'NETWORKED') OR (ISNUMERIC (PLANNUMBER) = 1)) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='CASH' AND C.DateLost <= CAST((@RptYear - S.IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='EQUITY' AND C.DateLost <= CAST((@RptYear - S.IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='FIXED INCOME' AND C.DateLost <= CAST((@RptYear - S.IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30'))) UNION ALL SELECT DISTINCT CASE WHEN C.TaxIDInd = '1' THEN ' ' ELSE UPPER(C.FirstName) END AS [1st First Name], UPPER (C.MiddleInitial) AS [1st Mid], CASE WHEN C.TaxIDInd = '1' THEN C.FirstName ELSE UPPER(C.LastName) END AS [1st Last Name], UPPER(C.SecondNameFirst) As [2nd First Name], UPPER(C.SecondNameMid) AS [2nd Mid], UPPER(C.SecondNameLast) AS [2nd Last Name], UPPER(C.StreetAddr1) AS [Address 1], UPPER (C.StreetAddr2) AS [Address 2], UPPER(C.City) AS City, UPPER(C.ResStateCode) AS [State], C.Zip AS Zip, CASE WHEN LEN(C.SSN) = 0 THEN C.TaxID ELSE C.SSN END AS [SSN/Tax ID], Right(C.OfficeNumber,3) + ' ' + C.CustomerNumber AS [Account Number], C.AcctExec AS [FA Number], C.DateOfBirth AS [Date Of Birth] FROM dbo.tblStatesAll AS S INNER JOIN dbo.tblCustomersNew AS C ON S.StateFS = C.ResStateCode INNER JOIN dbo.tblProductsNew AS P ON C.CustomerNumber = P.CustomerNumber AND C.OfficeNumber = P.OfficeNumber WHERE (S.FallCycle= 0) AND S.StateFS = 'NY' AND C.RedFlag = 'N' AND LEN(P.InsuranceContract) = 0 AND ((P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - S.MutualFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - S.MutualFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity = 0 AND P.CashBalance = 0) AND ((LEN(PlanNumber) = 0) OR (PlanNumber = 'NETWORKED') OR (ISNUMERIC (PLANNUMBER) = 1))) OR -- Other is Included for Lexis Nexis as well as Insurance Contracts (P .PropertyType='CASH' AND C.DateLost <= CAST((@RptYear - S.CashFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='EQUITY' AND C.DateLost <= CAST((@RptYear - S.StocksFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='FIXED INCOME' AND C.DateLost <= CAST((@RptYear - S.BondsFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR --IRA WITH VALID DATE OF BIRTH (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - 3) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - 3) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity = 0 AND P.CashBalance = 0) AND ((LEN(PlanNumber) = 0) OR (PlanNumber = 'NETWORKED') OR (ISNUMERIC (PLANNUMBER) = 1)) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='CASH' AND C.DateLost <= CAST((@RptYear - 3) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='EQUITY' AND C.DateLost <= CAST((@RptYear - 3) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='FIXED INCOME' AND C.DateLost <= CAST((@RptYear - 3) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - S.IRAFS)-71) AS VARCHAR) + '-06-30'))) UNION ALL SELECT DISTINCT CASE WHEN C.TaxIDInd = '1' THEN ' ' ELSE UPPER(C.FirstName) END AS [1st First Name], UPPER (C.MiddleInitial) AS [1st Mid], --SELECT DISTINCT UPPER (C.FirstName) AS [1st First Name], UPPER (C.MiddleInitial) AS [1st Mid], CASE WHEN C.TaxIDInd = '1' THEN C.FirstName ELSE UPPER(C.LastName) END AS [1st Last Name], UPPER(C.SecondNameFirst) As [2nd First Name], UPPER(C.SecondNameMid) AS [2nd Mid], UPPER(C.SecondNameLast) AS [2nd Last Name], UPPER(C.StreetAddr1) AS [Address 1], UPPER (C.StreetAddr2) AS [Address 2], UPPER(C.City) AS City, 'DE' AS [State], C.Zip AS Zip, CASE WHEN LEN(C.SSN) = 0 THEN C.TaxID ELSE C.SSN END AS [SSN/Tax ID], Right(C.OfficeNumber,3) + ' ' + C.CustomerNumber AS [Account Number], C.AcctExec AS [FA Number], C.DateOfBirth AS [Date Of Birth] FROM dbo.tblCustomersNew AS C LEFT JOIN dbo.tblStatesAll AS S ON S.StateFS = C.ResStateCode -- Use LEFT JOIN and check for NULL in StateFS for non-matching values. INNER JOIN dbo.tblProductsNew AS P ON C.CustomerNumber = P.CustomerNumber AND C.OfficeNumber = P.OfficeNumber WHERE (@FallCycle= 0) AND S.StateFS IS NULL AND C.RedFlag = 'N' AND LEN(P.InsuranceContract) = 0 AND ((P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - @MutualFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - @MutualFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity = 0 AND P.CashBalance = 0) AND ((LEN(PlanNumber) = 0) OR (PlanNumber = 'NETWORKED') OR (ISNUMERIC (PLANNUMBER) = 1))) OR -- Other is Included for Lexis Nexis as well as Insurance Contracts (P .PropertyType='CASH' AND C.DateLost <= CAST((@RptYear - @CashFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='EQUITY' AND C.DateLost <= CAST((@RptYear - @StocksFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR (P .PropertyType='FIXED INCOME' AND C.DateLost <= CAST((@RptYear - @BondsFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) = 0 AND (P.Quantity > 0 OR P.CashBalance > 0)) OR --IRA WITH VALID DATE OF BIRTH (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - @IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - @IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='MUTUAL FUND' AND C.DateLost <= CAST((@RptYear - @IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity = 0 AND P.CashBalance = 0) AND ((LEN(PlanNumber) = 0) OR (PlanNumber = 'NETWORKED') OR (ISNUMERIC (PLANNUMBER) = 1)) AND (C.DateOfBirth <= CAST(((@RptYear - @IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='CASH' AND C.DateLost <= CAST((@RptYear - @IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - @IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='EQUITY' AND C.DateLost <= CAST((@RptYear - @IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - @IRAFS)-71) AS VARCHAR) + '-06-30')) OR (P .PropertyType='FIXED INCOME' AND C.DateLost <= CAST((@RptYear - @IRAFS) AS VARCHAR) + '-12-31' AND LEN(P.IRACode) > 0 AND (P.Quantity > 0 OR P.CashBalance > 0) AND (C.DateOfBirth <= CAST(((@RptYear - @IRAFS)-71) AS VARCHAR) + '-06-30'))) ORDER BY C.[State]
|
|
Answer : How to resolve the SQL error: "ORDER BY items must appear in the select list if the statement contains a UNION, INTERSECT or EXCEPT operator"?
|
|
change your order by from
ORDER BY C.[State]
to
ORDER BY [State]
|
|
|
|