当前位置:首页 » 编程语言 » 帮忙写一个sql的句子
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

帮忙写一个sql的句子

发布时间: 2023-01-09 04:46:18

① 请朋友们帮忙写出sql语句.感谢!在线等!!

--建立测试数据
create table tb
(姓名 varchar(20) null,
费用类型 varchar(20) null,
费用金额 decimal null
)

go

insert into tb
select 'XM1','交通费',50
union all
select 'XM1','交通费',40
union all
select 'XM1','餐饮费',60
union all
select 'XM1','餐饮费',60
union all
select 'XM1','办公费',30
union all
select 'XM1','办公费',30
union all
select 'XM2','办公费',30
union all
select 'XM2','办公费',60

go

--查询语句
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , sum(case 费用类型 when ''' +费用类型+ ''' then 费用金额 else 0 end) [' + 费用类型 + ']'
from (select distinct 费用类型 from tb) as a
set @sql = @sql + ' from tb group by 姓名'
--print (@sql)
exec(@sql)

--------------------结果集------------------------------
姓名 办公费 餐饮费 交通费
-------------------- ---------------------------------------- ---------------------------------------- ----------------------------------------
XM1 60 120 90
XM2 90 0 0

--删除测试数据
drop table tb

② 关于SQL 求帮忙写个语句 !

createtable#table(Namenvarchar(50),[date]nvarchar(500))
insertinto#tablevalues('小明','1,2,3,4,5')
---------------------------------------------------------------
declare@datenvarchar(500)
set@date=(select[date]from#table)
print@date
createtable#t(tnvarchar(50))
while(1=1)
begin
if(Charindex(',',@date)=0)
begin
insertinto#tvalues(@date)
break
end
insertinto#tvalues(Substring(@date,1,Charindex(',',@date)-1))
set@date=Right(@date,Len(@date)-Charindex(',',@date))
end

selectNameas姓名,
STUFF((select','+t+'号'from#tforxmlpath('')),1,1,'')as迟到日期
from#table

--droptable#t

③ 帮我写个sql语句,很简单的

我来回答,这个表是谁给你建的?你应该揍他一顿。如果是你自己建的,面壁去吧。

应该有两个表:
1、省份表
字段名 类型 长度 备注
Pid int 4 自增变量,主键,省份id
PName char 20 省份名称

2、城市表字段名 类型 长度 备注
Cid int 4 自增变量,主键
CName char 20 城市名称
Pid int 4 城市所属的省份id

对于前面的那些数据,应该是这样的:
1、省份表(ProvinceTable)
Pid PName
1 广东省
2 湖南省
(更多的,再添加)

2、城市表(CityTable)
Cid CName Pid
1 广州市 1
2 深圳市 1
3 长沙市 2
4 岳阳市 2

这样的表结构才有可能实现你要的效果。
把省份表中的名称和id放到选择省份列表中,这样:
<select name="Province" onclick="">
<option value="1">广东省</option>
<option value="2">湖南省</option>
</select>
然后在onclick事件中提交表单,或者使用Ajax技术向服务器中发送选择的省份id。

这时候,得到省份所有城市列表的sql语句为(假设我们选择广东省):
select * from citytable where pid=1

欢迎访问我的论坛:

http://www.chinesebloger.com
期待您的支持:) 9471希望对你有帮助!

④ 请求前辈帮忙写一条SQL语句,实现下列效果!

楼上回答是可以的,只是oracle的语法,mysql中没有decode,只能用case when,语句如下:
SELECT Goodsname 物品,
SUM(CASE WHEN Cls = '进' THEN Qty ELSE 0 END) 进货数量,
SUM(CASE WHEN Cls = '出' THEN Qty ELSE 0 END) 出货数量,
SUM(CASE WHEN Cls = '进' THEN Qty ELSE -1 * Qty END) 当前存库
FROM Goods
GROUP BY Goodsname;

⑤ 帮帮写个sql语句

你的语句已经是最简单的了, 有时候语句不是越简单越好, 还要考虑语句的执行效率, 多写几句话是很必要的, 精炼的语句前提是不影响正常功能, 效果相同情况下的精炼, 谢谢

⑥ 请大家帮忙写一个创建sql表的语句!

通过sql语句建立表结构如下:

create table course
(cno varchar(20) not null primary key,
cname varchar(20) not null,
name varchar(20) null)
go
create table score
( id int identity(1,1)not null primary key,
sno varchar(20) not null,
cno varchar(20) not null
constraint fk_cno foreign key references course(cno),
score int null)

⑦ 求大佬帮忙写个SQL语句

(1)你在你的语句中应该不会出现连个相同的行吧(毕竟一个人不能关注另一个人两次),比如两行同样都是(1,2),也就是说distinct可以不需要写(1关注了2,关注了3,但是在to_id=2的时候from_id=1的只有一个)。
(2)如果没有最后一个条件,也就是既关注a有关注b的,那么一条语句就可以,现在则需要写两遍,其实用编号(开窗)来做也可以,不过如果数据量很大的话,开窗就会很慢,所以如果数据量大的话,不建议这么做,
分组表示group by,slt表示selelct,fm表示from

语句我都写出来,你自己试验下:
关注a用户的用户数目、关注b用户的用户数目:
slt to_id,count(*) fm table whe to_id='a' or to_id='b' 分组 to_id
关注a用户的用户数目、关注b用户的用户数目、既关注了a用户又关注了b用户的用户数目:
slt 开窗函数(partition by from_id order by to_id) BH,to_id fm table where to_id='a' or to_id='b'
解释一下:上面语句的结果中,凡是有BH=2的就是同时关注了a和b的(这个开窗自己查一下,这里不性能写,写了发不上来,是oracle的rownum开窗,如果你不是oracle数据库,那么查一查相关的函数)
上面整个语句起一个别名AA
slt BH,to_id,count(*) T fm AA 分组 cube (BH,to_id ) having BH<>1
说明一下:查询结果是按照BH和to_id分组,BH有两个值1和2,to_id有两个值a和b,再加上cube,那么结果应该是

BH to_id T(count的别名)
1 a XX
1 XX
a XX
1 b xx
b xx
2 b XXX(这两组XXX的应该是相等的)
2 XXX(这两组XXX的应该是相等的)
然后筛选BH不等于1的,那么结果就是:
BH to_id T
a XX
b xx
2 b XXX
2 XXX
因为下面两个是相等的,就是都是同时关注a和b的人的总和,所以用哪个都行,如果想只留一个,那么就在having的后面加上一句 or (BH<>2 and to_id<>b)
也可以用to_id is null,不过这样留下的就是上面那行,不过结果是一样的。

⑧ 写SQL语句 来帮忙

1)select A.姓名
from (select * from S) A
inner jion (select * from SC) B on A.学号=B.学号
inner join (select * from C) D on B.课程号=D.课程号
where D.选修课程='1' and D.选修课程='2'
2)select A.姓名,D.课程名
from (select * from S) A
inner jion (select * from SC) B on A.学号=B.学号
inner join (select * from C) D on B.课程号=D.课程号
3)select A.姓名
from (select * from S) A
inner jion (select * from SC) B on A.学号=B.学号
where B.成绩<60
4)select A.系名
(select 系名,count(性别) as 人数
from S where 性别='女' group by 系名) A
where A.人数>80
5)update S set 年龄='22' where 学号='2012511'
6)CREATE VIEW Aname AS
select *
from (select * from S where 系名='信息系') A
inner jion (select * from SC where 成绩>90) B on A.学号=B.学号
inner join (select * from C where 选修课程号='1') D on B.课程号=D.课程号