两个SQL问题急等

dongliang_lu 2015-09-06 09:18:57

1. 删除人员表中姓名重复的数据,只保留重复数据中的一条数据。十几万行记录要怎么写处理
CREATE TABLE [dbo].[RYB_T1](
[PERSONID] [varchar](64) primary key,
[DepartId] [varchar](64) NULL,
[salary] [float] NULL,
[PersonName] [varchar](64) NULL,
[SEX] [bit] NULL
)

GO

2.第8题怎么样写,现有代码如下
表结构
月份 借方金额 贷方金额 凭证号 科目名称
--------------------------------------------
一月份 100 0 01 库存现金
一月份 0 90 01 库存现金
一月份 100 0 01 库存现金
一月份 0 110 01 库存现金
一月份 300 0 02 银行存款
一月份 0 300 02 银行存款
二月份 0 0 03 信托投资
三月份 100 0 04 应缴税费

7. 如果要生成下列结果, 该如何写sql语句?
月份 借方金额 贷方金额 凭证号
一月份 200 200 01
一月份 300 300 02
二月份 0 0 03
三月份 100 0 04

8. 如果要生成下列结果, 该如何写sql语句?
月份 库存现金 银行存款 信托投资 应缴税费 总计
一月份 4 2 0 0 6
二月份 0 0 1 0 1
三月份 0 0 0 1 1


CREATE TABLE [dbo].[kmjetj](
[月份] [varchar](64) ,
[借方金额] float NULL,
[贷方金额] float NULL,
[凭证号] [varchar](64) NULL,
[科目名称] [varchar](64) NULL
)

GO
select * from kmjetj


insert into kmjetj values('三月份', 100 , 0 , ' 04','应交税费')





...全文
399 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongliang_lu 2015-09-06
  • 打赏
  • 举报
回复
急死了, 表结构 月份 借方金额 贷方金额 凭证号 科目名称 -------------------------------------------- 一月份 100 0 01 库存现金 一月份 0 90 01 库存现金 一月份 100 0 01 库存现金 一月份 0 110 01 库存现金 一月份 300 0 02 银行存款 一月份 0 300 02 银行存款 二月份 0 0 03 信托投资 三月份 100 0 04 应缴税费 8. 如果要生成下列结果, 该如何写sql语句? 月份 库存现金 银行存款 信托投资 应缴税费 总计 一月份 4 2 0 0 6 二月份 0 0 1 0 1 三月份 0 0 0 1 1 CREATE TABLE [dbo].[kmjetj]( [月份] [varchar](64) , [借方金额] float NULL, [贷方金额] float NULL, [凭证号] [varchar](64) NULL, [科目名称] [varchar](64) NULL ) GO select * from kmjetj insert into kmjetj values('三月份', 100 , 0 , ' 04','应交税费') select 月份, (case when(科目名称 in select 科目名称 from kmjetj where 科目名称='库存现金')then (select count(库存现金)from kmjetj) else 0 end )as 库存金额, (case when( 科目名称 in select 科目名称 from kmjetj where 科目名称='银行存款')then (select count(银行存款)from kmjetj) else 0 end )as 银行存款, (case when(科目名称 in select 科目名称 from kmjetj where 科目名称='信托投资')then (select count(信托投资)from kmjetj) else 0 end )as 信托投资, (case when( 科目名称 in select 科目名称 from kmjetj where 科目名称='应交税费')then (select count(应交税费)from kmjetj) else 0 end )as 应交税费, 库存金额银行存款+信托投资+应交税费 as 总计 from kmjetj group by 月份 order by asc 1楼高手其实,再回来看看
Pact_Alice 2015-09-06
  • 打赏
  • 举报
回复
忘记汇总了 ;WITH cet AS ( SELECT [月份],[科目名称],COUNT(科目名称)ID FROM #C GROUP BY [月份],[科目名称] ) SELECT [月份], SUM(CASE WHEN [科目名称]='库存现金' then ID else 0 end )'库存现金', SUM(CASE WHEN [科目名称]='信托投资' then ID else 0 end )'信托投资', SUM(CASE WHEN [科目名称]='银行存款' then ID else 0 end )'银行存款', SUM(CASE WHEN [科目名称]='应缴税费' then ID else 0 end )'应缴税费', SUM(ID)AS '总计' FROM cet GROUP BY [月份]
Pact_Alice 2015-09-06
  • 打赏
  • 举报
回复
第一题错了,应该是WITH cet AS ( SELECT *,ROW_NUMBER()OVER(PARTITION BY PersonName ORDER BY PersonName)ID FROM RYB_T1 ) DELETE FROM cet WHERE ID>1 第八题 CREATE TABLE #C( 月份 varchar(50), 借方金额 int, 贷方金额 int, 凭证号 varchar(50), 科目名称 varchar(50) ) INSERT INTO #C select '一月份', 100 , 0 , 01 , '库存现金' union all select '一月份', 0 , 90 , 01 , '库存现金' union all select '一月份', 100 , 0 , 01 , '库存现金' union all select '一月份' , 0 ,110 , 01 , '库存现金' union all select '一月份', 300 , 0 , 02 , '银行存款' union all select '一月份', 0 , 300 , 02 , '银行存款' union all select '二月份', 0 , 0 , 03 , '信托投资' union all select '三月份', 100, 0 , 04 , '应缴税费' ;WITH cet AS ( SELECT [月份],[科目名称],COUNT(科目名称)ID FROM #C GROUP BY [月份],[科目名称] ) SELECT [月份], SUM(CASE WHEN [科目名称]='库存现金' then ID else 0 end )'库存现金', SUM(CASE WHEN [科目名称]='信托投资' then ID else 0 end )'信托投资', SUM(CASE WHEN [科目名称]='银行存款' then ID else 0 end )'银行存款', SUM(CASE WHEN [科目名称]='应缴税费' then ID else 0 end )'应缴税费' FROM cet GROUP BY [月份]
WUDUBUZHANGFU 2015-09-06
  • 打赏
  • 举报
回复
1:select distinct PersonName from RYB_T1
dongliang_lu 2015-09-06
  • 打赏
  • 举报
回复
第1题没看懂 第八题呀,CASE when then else,我不知道怎么写了,然后汇总,来个高手
Pact_Alice 2015-09-06
  • 打赏
  • 举报
回复
一: WITH cet AS ( SELECT *,ROW_NUMBER()OVER(PARTITION BY PersonName ORDER BY PersonName)ID FROM RYB_T1 ) DELETE FROM cet WHERE ID=1 二: SELECT 月份,SUM(借方金额),SUM(贷方金额),凭证号 FROM TabNmae GROUP BY 月份,凭证号 同学,作业要自己做啊

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧