Sql server 2008 从sql server 2008中声明的表中删除重复项
我已经在sql server 2008中创建了一个查询。当我运行此查询时,我找到了重复的记录。我为解决方案寻找了删除重复的记录,但我没有找到正确的答案 我的问题是Sql server 2008 从sql server 2008中声明的表中删除重复项,sql-server-2008,Sql Server 2008,我已经在sql server 2008中创建了一个查询。当我运行此查询时,我找到了重复的记录。我为解决方案寻找了删除重复的记录,但我没有找到正确的答案 我的问题是 DECLARE @table_proposal TABLE ( applicationno NVARCHAR(200) ,sname NVARCHAR(200) ,gender NVARCHAR(50) ,annual_income NVARCH
DECLARE @table_proposal TABLE (
applicationno NVARCHAR(200)
,sname NVARCHAR(200)
,gender NVARCHAR(50)
,annual_income NVARCHAR(200)
,period NVARCHAR(200)
,monthly NVARCHAR(200)
,scholarshipamt NVARCHAR(200)
,book NVARCHAR(200)
,totalamt NVARCHAR(200)
,bank NVARCHAR(200)
,serialno NUMERIC(20)
)
INSERT INTO @table_proposal
(
applicationno
,sname
,gender
,annual_income
,period
,monthly
,scholarshipamt
,book
,totalamt
,bank
,serialno
)(
SELECT tspr.student_code
,First_Name + ' ' + Middle_Name + ' ' + Last_Name AS NAME
,Gender_Code
,tsam.Scholarship_Amount
,Academic_Year_Code
,tsam.Scholarship_Amount AS monthly
,tsed.Scholarship_Amount
,tsam.Amount_for_books AS book
,tsed.Scholarship_Amount
,'AC - ' + CAST(Account_No AS VARCHAR(20)) + ' / ' + Bank_Name
,ROW_NUMBER() OVER(ORDER BY tspr.student_code)
FROM tbl_Student_Personal_Registration tspr
INNER
JOIN tbl_Student_Educational_Details tsed ON tspr.Student_Code = tsed.Student_Code
INNER
JOIN tbl_Proposal_Detail tpd ON tpd.Student_Code = tspr.Student_Code
INNER JOIN tbl_Scholarship_Amount_Master tsam ON tspr.Hotellers =
tsam.Hosteller
AND tsam.Gender = tspr.Gender_Code
AND tsam.Category_Code = tspr.Category_Code
WHERE tpd.Proposal_Id = 'N/1/CG0120G001/B/13/01'
)
SELECT applicationno
,sname
,gender
,annual_income
,period
,monthly
,scholarshipamt
,book
,totalamt
,bank
,serialno
,COUNT(applicationno)
FROM @table_proposal
GROUP BY
applicationno
,sname
,gender
,annual_income
,period
,monthly
,scholarshipamt
,book
,totalamt
,bank
,serialno
你能试试下面的查询吗
DECLARE @table_proposal TABLE (
applicationno NVARCHAR(200)
,sname NVARCHAR(200)
,gender NVARCHAR(50)
,annual_income NVARCHAR(200)
,period NVARCHAR(200)
,monthly NVARCHAR(200)
,scholarshipamt NVARCHAR(200)
,book NVARCHAR(200)
,totalamt NVARCHAR(200)
,bank NVARCHAR(200)
)
INSERT INTO @table_proposal
(
applicationno
,sname
,gender
,annual_income
,period
,monthly
,scholarshipamt
,book
,totalamt
,bank
)(
SELECT tspr.student_code
,First_Name + ' ' + Middle_Name + ' ' + Last_Name AS NAME
,Gender_Code
,tsam.Scholarship_Amount
,Academic_Year_Code
,tsam.Scholarship_Amount AS monthly
,tsed.Scholarship_Amount
,tsam.Amount_for_books AS book
,tsed.Scholarship_Amount
,'AC - ' + CAST(Account_No AS VARCHAR(20)) + ' / ' + Bank_Name
FROM tbl_Student_Personal_Registration tspr
INNER
JOIN tbl_Student_Educational_Details tsed ON tspr.Student_Code = tsed.Student_Code
INNER
JOIN tbl_Proposal_Detail tpd ON tpd.Student_Code = tspr.Student_Code
INNER JOIN tbl_Scholarship_Amount_Master tsam ON tspr.Hotellers =
tsam.Hosteller
AND tsam.Gender = tspr.Gender_Code
AND tsam.Category_Code = tspr.Category_Code
WHERE tpd.Proposal_Id = 'N/1/CG0120G001/B/13/01'
)
SELECT applicationno
,sname
,gender
,annual_income
,period
,monthly
,scholarshipamt
,book
,totalamt
,bank
,,ROW_NUMBER() OVER(ORDER BY applicationno) AS serialno
,COUNT(applicationno)
FROM @table_proposal
GROUP BY
applicationno
,sname
,gender
,annual_income
,period
,monthly
,scholarshipamt
,book
,totalamt
,bank
,serialno
您能否提供示例/简化数据集?Alos,在消除重复项以说明哪些字段构成行的自然主键唯一标识符时,这一点很重要。