关于sql语句的问题
发布网友
发布时间:2022-04-25 04:59
我来回答
共5个回答
热心网友
时间:2022-04-08 21:38
设:日期字段为 DATE
计数列字段为 COUNT
表名为TABLE
临时伪表为DUAL
SELECT
A.DATE
, SUM(A.COUNT)
FROM (
SELECT
DATE
, COUNT
FROM TABLE
UNION
SELECT
'01-15'
, 0
FROM DUAL
) A
GROUP BY A.DATE
ORDER BY A.DATE;
注意:MYSQL , ORACLE 都有一个临时伪表,
叫做DUAL,
在DB2中叫做SYSIBM.DUMMY1 ,你用其他数据库,就查相关的文档。
就是一个虚的表,让你能够执行一些完整的SELECT 运算。
SELECT
'01-15'
, 0
FROM DUAL
就是插入一个('01-15',0)的记录,让你的天数完整。
问题补充:------------------------------
谢谢3楼,但是你这样写万一我缺少的是01-16呢?这个缺少的日期是动态决定的
>>那你干脆造一个包含所有日期的,连续的全量表,每个日期的
计数列都置为0,再select ,union 一下就得了,反正0对统计、汇总没影响。
参考资料:http://arpoon.info/zh
热心网友
时间:2022-04-08 22:56
在里面加入下面的插入语句
insert into table_name(colunm1,colunm2)
values(01-15,**)
热心网友
时间:2022-04-09 00:30
期待ing...
写个函数应该可以解决这个问题
热心网友
时间:2022-04-09 02:22
原来al还可以这样用的啊,汗,多谢三楼了.
热心网友
时间:2022-04-09 04:30
貌似不行
8 种最坑的 SQL 错误用法,你有没有踩过?
1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHEREtype = 'SQLStats'AND name = 'SlowLog' ORDERBY create...
sql 语句问题:
一、容易理解的 update 收费项目 set 成本价 = 药房入库单细.单价 from 收费项目 xm,药房入库单细 mx where xm.编码 = mx.药品编码 and mx.修改时间 = ( select max(修改时间) from 药房入库单细 where 药品编码 = xm.编码 )二、有些拿不准,可以试试的 update 收费项目 set 成本价...
SQL数据库建库和数据表语句有问题?请高手帮忙解决
针对SQL数据库建库和数据表语句的问题,我们可以按照以下步骤逐一解决:1. 删除已存在的外键约束: ALTER TABLE [dbo].[Elect] DROP CONSTRAINT FK_Elect_Cource; ALTER TABLE [dbo].[Student] DROP CONSTRAINT FK_Student_Depart; ALTER TABLE [dbo].[Teacher] DROP CONSTRAINT FK_Teacher_D...
用SQL语句完成下列问题。
1、第一题,是查询总和,总和在SQL中使用sum,如:select sum(成绩) from 表名 2、第二题,查询平均值,SQl:select 学号,Avg(sum(成绩)) from 表名 group by 学号 3、第三题,查询每课程学生人数,SQL : select 课程名称,count(学号) from 表名 group by 课程名称 4、第四题,查询最高...
SQL 语句的执行顺序 问题
在执行 SELECT 语句时,可以通过 ORDER BY 子句指定结果的排序方式。可以使用 ASC 选项表示升序,DESC 选项表示降序。SQL 还提供了 FOR 子句,用于指定查询的结果格式,如 BROWSE、XML 等。例如,FOR XML RAW 用于以 XML 格式返回查询结果。此外,还可以通过 OPTION 子句提供查询提示,以优化查询性能。...
SQL 语句问题
只能出现在selec和from之间或者having关键字之后 你的语句可以这样改写 select。。。from。。。where ... group by ... having count(e.employee)<3 或者改写语句:select ... from(select。。。,count(1)over(partition by e.employee) as a from。。。where ...)t where a<3 ...
sql查询语句问题请教?
如果我理解正确,您想根据日期的不同,将不同的查询结果放入'23年前工时'和'二三年后工时'这两个字段。你可以使用SQL中的CASE WHEN结构来实现这个需求。下面是一个可能的解决方案:SELECT t2.FNUMBER AS 项目编码,t3.FNAME AS 项目名称,CASE WHEN F_ORA_FEEDBACKDATE < '2023-01-01' THEN ...
SQL语句问题
如果是第一种情况:select 药品编码,药品名称,供应商 from B where 时间 = (select max(时间) from B);如果是第二种情况,就复杂一点了:select t2.药品编码,t2.药品名称,t2.供应商 from ( select 药品编码,max(时间) as lasttime from B group by 药品编码) t1 inner join B t2 on t1...
sql 语句问题
select * from stu where id=1 or 1=1 这样就把所有的数据都查上来了。这就是所谓的sql注入攻击,想想都害怕,而用select * from stu where id=?则不会出现这个问题。当然我举的是个最简单的例子,没有那个程序员会出如此错误,但是这说明一个问题,就是第一个sql不安全,NB的人大有人在。
一个SQL语句的错误问题
这句错在这里,有两种可能:1:如果你的var_课程和var_年龄是要放到数据库中比较的值,请这样写SQL语句:Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = 'var_课程' and 年龄 = 'var_年龄 '")原因:如果不加单引号,这条语句到数据库...