我写了一条sql语句查询northwind数据库一年每个季度的销售情况,可是结果每年每季度的结果都是一样的

作者&投稿:寇和 (若有异议请与网页底部的电邮联系)
最近在写sql语句查询northwind数据库每个季度的销售情况,不太会写了,写了一句出了错误,麻烦帮看下~

from 前最后一个字段后面不要加逗号,
另外你的sql应该可以改写为以下语句:
SELECT YEAR(SHIPPEDDATE) ,
DATEPART(QUARTER, SHIPPEDDATE) ,
SUM(UNITPRICE * QUANTITY * ( 1 - DISCOUNT ))
FROM ORDERS ,
[ORDER DETAILS]
WHERE ORDERS.ORDERID = [ORDER DETAILS].ORDERID
GROUP BY YEAR(SHIPPEDDATE) ,
DATEPART(QUARTER, SHIPPEDDATE)
ORDER BY 1, 2

select Employee as '雇员',
'第一季度' as '季度',
Sum(Case when month(OrderDate) in (1, 2, 3) then Quantity else 0 end) as '销售量'
from dbo.Sales
group by Employee
;
季度字段在销售量里面就体现出来了,你那么写没有意义

select Year as 年份
, 第一季度= sum(case Q when 0 then amount end)
, 第二季度= sum(case Q when 1 then amount end)
, 第三季度= sum(case Q when 2 then amount end)
, 第四季度= sum(case Q when 3 then amount end)
from (
select year(ShippedDate) as Y, month(ShippedDate) / 4 as Q,
UnitPrice*Quantity*(1-Discount) as amount
from Orders,[Order Details]
where Orders.OrderID=[Order Details].OrderID
and year(ShippedDate) is not null
group by year(ShippedDate) , month(ShippedDate) / 4
) as a
group by Y
order by Y

可以简要说下表Orders , [Order Details] 的字段和关系吗?


写一条sql语句
select case when yw>=80 then '优秀'when yw>=60 and yw<80 then '及格'when yw<60 then '不及格'end '语文',case when sx>=80 then '优秀'when sx>=60 and yw<80 then '及格'when sx<60 then '不及格'end '数学',case when yy>=80 then '优秀'when yy>=60 and yw<80 ...

谁能帮我写一下sql查询语句
select 读者号,姓名 from 借阅表 where 读者号 in (select 读者号 from 借阅表 where 以还否=‘否’group by 读者号 having count(*)>2 )group by 读者号,姓名 --- 内层查询 查询出以还否=‘否’的记录 然后对这些记录按读者号分组,并统计出读者号记录在2以上的记录。外层查询查找读者号与...

求助写一条sql语句?
select a.教师姓名,sum(b.课时数) from a ,b,c where a.教师编号=b.教师编号 and b.班级id=c.班级id and c.开始时间>to_Date(' 2-21','MMDD')and c.结束时间<to_Date('4-1','MMDD')group by a.教师姓名

sql一条语句查询订单表下过两次单的顾客。
1、首先在sql软件中,确定要重命名的表,如下图所示。2、接着点击顶部的新建查询按钮,如下图所示。3、然后执行sp_rename语句,第一个是原表名,后面的是新表名,如下图所示。4、接下来点击执行按钮,如下图所示。5、然后会显示一个提示消息,如果其他地方没有这个表名的调用就不用管。6、最后...

查询每门课成绩最高分的同学的sql语句,输出课程名,姓名,学号,分数...
select cname,sname,sc.sno,grade from student,SC,course where student.sno =SC.sno and SC.cno =course.cno and grade=(select MAX(grade) from SC where SC.cno =course.cno )

一个SQL语句的写法
[TEST@ORA1] SQL>select 2 客户名称,3 sum(1) as 交易笔数,4 sum(case when 关闭标志='Y' then 1 else 0 end) as 已关闭数,5 sum(交易金额) as 交易金额,6 sum(case when 关闭标志='Y' then 交易金额 else 0 end) as 已关闭金额 7 from sales 8 group by ...

写SQL语句喽!写出来I服了You !
以下是oracle数据库代码:--第一步创建表空间;create tablespace testSpace datafile 'd:\\oracle\\oradata\\ora92\\test.dbf'size 10M autoextend on next 1M --第二步创建表A,B,C 并且加上主外键关系;drop table a;create table a(id number,name varchar2(50),sex varchar2(4));并且插入数据;i...

假想一条SQL语句,查询19年所有客户的订单总金额
select a.customerid,a.customername,sum(c.money) money from customer a,orders b,orderitem c where a.customerid = b.customerid and b.orderid = c.orderid and b.orderdate between '2019-01-01 00:00:00.000' and '2019-12-31 23:59:59.999'group by a.customerid,a.c...

一个SQL语句怎么写?
你问问题时把你的两张表都贴出来喔,我很难回答,思路大概是这么写,如果报错,就是你的表所有列名没有一个一个按顺序列出来给我的原因,你修改一下就行。declare @hyh int declare @dbjf int set @hyh=*** \/\/这里的*输入你的会员号 set @dbjf=*** \/\/这里的*输入你的单笔消费积分 ins...

如何用一条SQL语句查询数据库重复记录
方法如下:select * from 你的表名 a where id=(select min(id) from 你的表名 whereitem_id=a.item_id)在查询之前先把数据库表中的第一行复制到sid里在去,然后让sid和下面的每一行进行比较 取所有相同的行的最小的一下,也可以取最大的,结果是一样的。这样让所有的行都比较不就得到不...

振安区17635156978: SQL语句中 USE Northwind SELECT Productname FROM Northwind.dbo.Products WHERE UnitPrice=10
蛮亚大活: USE Northwind --切换到Northwind数据库 SELECT Productname --查询Productname字段 FROM Northwind.dbo.Products --来自Northwind数据库的DBO对象的Products表,一般Northwind.dbo. 可以省略,直接写 from Products 即可.综合上面一句,就是查询Products表的Productname字段 WHERE UnitPrice=10 --条件为UnitPrice=10 以上整个语句的意思就是 查询价格为10的产品名称.

振安区17635156978: 一个很基础的SQL查询语句 -
蛮亚大活: 这个是SQLSERVER的查询 方括号在此处并不是必须的,方括号一般是用来括用户表中涉及的数据库的保留字的.比如USER, ID等等之类的SQLSERVER的保留字.因为数据库本身有这些关键字,而用户创建自己的表时,又创建了这些字段,...

振安区17635156978: 请高手帮写一条sqlserver 查询 排序语句 -
蛮亚大活: LZ回头可要把红包补上呀!幸好你的要求不是很高,如果是负数或是浮点数,或是科学计数法的数字,我写的也不行,排序对于null来说默认是靠前的!不说了!看代码吧!先写一个搜索函数,然后查询=================================...

振安区17635156978: 求教SQL查询 (用Oracle或MySQL)实现查询? 有表Test如下图a,写一条SQL语句使之查询结果如图b所示 -
蛮亚大活: 利用lead()和lag() select code,value,lead(value,1,null)over(partition by code order by value) after_value from test 不是你的问题我都快想不起来这个函数了.

振安区17635156978: mysql:只用一条sql语句,如何查出一个表里,不同条件对应的数据条数 -
蛮亚大活: mysql只用一条sql语句查出一个表里不同条件对应的数据条数的步骤如下: 我们需要准备的材料分别是:电脑、sql查询器. 1、首先,打开sql查询器,连接上相应的数据库表,例如stu2表. 2、点击“查询”按钮,输入: select count(*) from stu2 where sex=1 and age=2 union all select count(*) from stu2 where sex=1 and age=5 union all select count(*) from stu2 where sex=1 and age=10 3、点击“运行”按钮,此时能只通过一条sql高效查询结果.

振安区17635156978: 求助一条sql查询语句 -
蛮亚大活: select TO1.userid, TO1.username, TO1.userType, TO2.logintime from user TO1 left join loginLog TO2 on TO2.userid = To1.userid and TO2.logintime >= /*:*/'30'/*:*/ where 1 = 1 order by TO1.userid 在这里你应该在关联的时候对usertype进行设定!...

振安区17635156978: 一条SQL查询语句 -
蛮亚大活: t1.title,t1select t1.id,t3.name from news t1,people t2.id and t1.content.authorid=t2,t2.name,people t3 where t1

振安区17635156978: 一条SQL语句能否实现这样的条件查询? -
蛮亚大活: select * from [表] where 1=case when @Search=0 and MyCode=123 then 1 when @Search=1 and MyName LIKE '陈%' then 1 else 0 end ---------------- 其实不太建议你这样做. 这样的语句效率低下,在一个1千万行数据的表里,查询速度肯定不理想.不过几万行的数据表,还是可以用的尽量用你原来的那2个语句,这样思路清晰,别人修改起来也简单些.

振安区17635156978: sql连接查询 mysql -
蛮亚大活: SELECT qid, qname, (SELECT COUNT(*) FROM 回复表 WHERE qid = 问题表.qid) AS cnt FROM 问题表

振安区17635156978: 求一个sql语句,实现查询
蛮亚大活: --一条语句的没想出来,编了个代码段,希望对你有所帮助. --示例表 declare @tb table (s_id int,e_id int) insert into @tb select 100,2 union all select 2,3 union all select 3,4 union all select 4,5 union all select 5,6 union all select 6,7 union all select ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网