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','应交税费')
------解决思路----------------------
一:
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 月份,凭证号
同学,作业要自己做啊
------解决思路----------------------
1:select distinct PersonName from RYB_T1
------解决思路----------------------
第一题错了,应该是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 [月份]
------解决思路----------------------
忘记汇总了
;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 [月份]