oracle查询,条件中如果某些sum不等于0怎么写

我有商品价格表sh,id ,price(价格) ,date(日期),name(名字)这些字段
,我原来的sql是要查询:select price,date,name from sh where data='2019-05-09' and sum(price) !=0
目的就是查询这天总和不为0的所有商品价格,这样写不让写,说这里不能用分组函数,请问要怎么写呢?

我具体业务是对账表,里面也就几个字段,进账跟出账是同一个字段,进账用正数,出账用负数,如果当天进账跟出账和不为0 ,那就是账不平,需要展示所有账目信息。跟这个差不多。

0

4个回答

按照你的意思 应该是查询 这天 所有price合计不为0 的商品。可以利用分组统计函数实现,具体如下:

select price,date,name from sh where date='2019-05-09' and name in (select name from sh where date='2019-05-09' group by name having sum(price) <>0)

0
weixin_39272566
weixin_39272566 回复骑乌龟干宝马: 可以就好
3 个月之前 回复
m0_37540107
骑乌龟干宝马 这个好像可以啊!
3 个月之前 回复
有的数据库,不等于用的不是  !=,而是 <>
0

select price,date,name from sh where data='2019-05-09' having sum(price) <>0
这样写,因为聚合函数不能做为查询条件,如果非要做为查询条件,得放在having里面

0
m0_37540107
骑乌龟干宝马 不行哎,还是说不是分组函数
3 个月之前 回复
select a.price,a.date1,a.name from sh a,
(select sum(price) as sumprice,date1 from sh where date1='2019-05-09' group by date1) b
where a.date1=b.date1 and b.sumprice<>0
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
oracle如果 sum为null记为0
oracle在使用sum函数计算式会遇到这样的情况。 如果sum的值为null,则什么都不显示。想要如果为null,则显示为0,怎么办? 方法1: select when sum(t.money) is null then    0    else    sum(t.money) from Money t 方法2: NVL(Expr1,Expr2)如果Expr1为NU
oracle条件不等于字符bug
1,在oracle中,条件若是不等于一个字符,假如用 例如:select t.*, t.rowid from table t where t.user_id='123456' and t.bank_bind_order_type 解决 添加or条件 select t.*, t.rowid from tbale t where t.user_id='123456' and (t.bank_bin
正则中的“不等于”怎么写???!!!???
如何匹配不是body的所有标签,即<>内不包含"body"rnrn[code=C#] [/code]rnrn正则怎么写?
FTSearch 查询公式 field 不等于“-”怎么写
我想使用FTSearch查找一个域不等于“-”,这样的query 怎么写?rn等于query = Field Field1 = "-"这样是没有问题的,我使用query = Field Field1 != "-"和query = Field Field1 <> "-"都报错。
不等于怎么查询?
如果有要查找ID不等于1000,应该怎么查询?
不等于空怎么写
从数据库中查出rs("aa")rn是rs("aa") != nullrn还是rs("aa") <> null 这两个都不对啊
在Oracle中的时间条件怎么写啊?
我象实现的功能是:rn如果现在的时间是8:00到16:00间rn执行语句select to_date(sysdate,'yyyy') from dualrn如果现在的时间是16:00到00:00间rn执行语句select to_date(sysdate,'yyyy-mm') from dualrn如果现在的时间是00:00到08:00间rn执行语句select to_date(sysdate,'yyyy-mm-dd') from dualrn我写的这句老是有错误,也不知道错在哪里。rnif to_char(sysdate,'hh24') >=08 and to_char(sysdate,'hh24')<16 thenrn select to_date(sysdate,'yyyy') from dual;rnelsif to_char(sysdate,'hh24') >=16 and to_char(sysdate,'hh24')<00 thenrn select to_date(sysdate,'yyyy-mm') from dual;rnelsif to_char(sysdate,'hh24') >=00 and to_char(sysdate,'hh24')<08 thenrn select to_date(sysdate,'yyyy-mm-dd') from dual;rnend if;
oracle中的空值怎么写条件?
我想用where 字段=“null'.可不行,怎么办?
oracle中的 “不等于”
在Oracle中,不等号有三种:&amp;lt;&amp;gt;,!=,^= ,但是并不是可以任意替换的。   来看一个例子:  1) 查询员工姓名不为scott的记录,想都没想,直接select * from emp where ename&amp;lt;&amp;gt;'scott'。        ename不为空的倒是都查出来了,但是ename为空的没查出来。        原来这么写的返回结果是“ename不为...
oracle 中 不等于 和 null
在oracle中,不等于会忽略null,也就是说在用不等于当作条件筛选所查内容的时候,其中值为null的记录会被筛选掉. 例如: A0219 &amp;lt;&amp;gt; '1' 会把 A0219 为 null的记录过滤掉...
查询中怎样写不等于???
...where id 不等于 no_id...rn这样改怎样写,数据库是sql server
Oracle中“不等于”的使用
在oracle中判断字段id不是“123”时, select * from user where id'123'; 但是id为空的,却怎么也查询不出来。 这是why?原因是:字段为null的时候,只能通过is null或者is not null来判断。 这样写才是正确的: select * from user where id '123' or id is null; 注意:当使
在查询中加入条件的语句怎么写?(条件是变量)
string strSQL =rn"SELECT * FROM Customer where City"+Label1.Text.ToString();rnrn用这句话查询总是出错,请问到底是为什么rnprivate void Button1_Click(object sender, System.EventArgs e)rn rn Label2.Text ="Your Select City Is "+CityName.SelectedItem.Text;rn string strDSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\Inetpub\\wwwroot\\aspbbs\\data\\xtreme.mdb";rn string strSQL ="SELECT * FROM Customer where City="+CityName.SelectedItem.Text.ToString();rn OleDbConnection myConn = new OleDbConnection(strDSN);rn OleDbCommand myCmd = new OleDbCommand(strSQL,myConn);rn myCmd.Connection.Open();rn DataGrid1.DataSource=myCmd.ExecuteReader();rn DataGrid1.DataBind();rn rn
sum() count()查询的sql 怎么写啊
[code=HTML]表 tbrnrn姓名 数量rna 1rna 2rna 3rnb 2rnc 2rnd 4rnd 1[/code]想查出,相同名称的行的数量和。如果一个姓名只有一行 就不用查询了rn上面的结果查出来应该是rnrna 6rnd 5
sql sum中怎么增加多个条件
[img=https://img-bbs.csdn.net/upload/201603/21/1458541175_794770.png][/img]rn如上表中rn保留所有字段,增加一列。计算billTypeName=‘调入单’和‘采购单’时rnmtId相同的字段的和。rnrn求各位大神帮忙rn拜托了rnrnrnrn【这样表述大家清楚吗 】
请教 select case 条件为文本框不等于空怎么写
rn有三个文件框rntext1rntext2rntext3rnrnselect case ?这里怎么写(要求文框不能为空为条件)rnrncase text1.textrnmsgbox "a"rncase text2.textrnmsgbox "b"rncase text3.textrnmsgbox "c"rnrnend selectrnrn这些好像都不行,Not empty, true, not isnullrnrn搞不清楚,各位请帮帮忙rn
不等于条件的优化。
现在有个1000W的表,然后有个视图需要和这个表进行一个联合查询。条件就一个这个1000W需要过滤一个不等于0的字段。我top 100 结果需要2秒钟。是否能进行优化处理。之前有人分享说可以通过WITH 来实现一个优化。具体没说出来。rn在这各位能否讨论这个该如何去优化。rnrnSELECT * FROM A LEFT JOIN B ON A.ID=B.ID LEFT JOIN C....rnWHERE B.COR<>0rnrn其中A和B的数据量 均为1000W以上。
oracle不等于
oracle中表示“不等于”的有 != &amp;lt;&amp;gt; ~= ^= 都可以表示等于 但是,执行select * from 表名 t where t.name != ‘li’ 时, 当 name 为 null 时,并不会显示,这是因为 null 与其他条件不同, 与 null 有关的语句为,is null 和is not null 如果你想要查询到所以的数据,需要改为 sel...
oracle 不等于1怎么查
空值null比较特殊,它不能通过=或者进行查询,只能用is null或者is not null进行查询,例如你的数据中有null值,那么用 字段名=1,字段名1,字段名=null都不能把这条数据检索出来,只有字段名 is null能检索出来.所以你需要查询的数据有两种,为null的,或者不等于1的,转化为sql就是select * from 表 where 字段名 is null or 字段名 1...
SqlDataSource DefaultValue 不等于怎么写?
rn rn rn rn rn rnrnrnSqlDataSource DefaultValue 不等于怎么写?rn以上多项搜索时的数据源控件源码,很奇怪 OR and没区别了。
VBA中if语句不等于怎么写呀?
大虾,在VBA中的if语句中判断两个表达式不等于时怎么写呀?
postgresql 在mybatis中不等于怎么写?
原句rnselect * from bib where 1=1 and p.type != '2630593'rnrnmybatis中rn[code=text]rnrn select * from bib b where 1=1rn rn rn and b.type != #typern rn rn order by b.date descrn rn[/code]rn判断中的不等于写法始终执行的是等于
这个 sum 怎么写?
表1rnuserid item1 item2 ......rnrn表2rnuserid item1 item2 item3 ......rnrn大概意思是每个表中的item数不定,想用一条SQL sum item列,这SQL能用于表1也能用于表2rnrn期待高手...rnrnrn
sql不等于0的表达式?
Sql = "Select distinct abs(lineStartPoint0 - lineEndPoint0) " & _rn "from [Line$] Where Layer = '粗实线' " & _rn " and abs(lineStartPoint0 - lineEndPoint0) <> 0 "rn程序成立rn问:为什么改成下式就不成立rnSql = "Select distinct abs(lineStartPoint0 - lineEndPoint0) as m1 " & _rn "from [Line$] Where Layer = '粗实线' " & _rn " and m1 <> 0 "rn
a-a不等于0?
dim a as singrna=707.1614-707.161rnrn相减后应为0.0004,而计算机的结果是4.000000013279E-4,怎样才能避免这类结果?rn
求不等于0的正则
3位正数不能等于0(0,00,000),的正则表达式rn7位整数+2位小数 的正则表达式rn都必须不能等于0,比如0 , 00,000,0000… 都禁止输入rnrn哪位大哥帮帮忙?
求 不等于0的正则表达式
3位正数不能等于0(0,00,000),的正则表达式rn7位整数+2位小数 的正则表达式rn都必须不能等于0,比如0 , 00,000,0000… 都禁止输入rnrn哪位大哥帮帮忙?
Oracle条件与排序查询
Oracle条件与排序查询 select *|字段名 from 表名 where 条件 order by 字段名 asc[默认值]|desc -- 查询每月能得到奖金的雇员: --空值的处理:要使用关键字: is null, is not null select * from emp where comm is not null and comm &amp;gt;0; --我们直接使用...
如果ComboBox1.text不等于空格,这句话怎么写?
我写成:if trim(ComboBox1.Text)<>‘’ thenrnrn程序过不去,说string和boolean类型不齐配,rnrn可是我不知道怎么改动,请大家救我,谢谢.rn
关于SUM作为一个条件的查询问题
[code=SQL]SELECT INVMB.MB001 as INVMBMB001,INVMB.MB002 as INVMBMB002,INVMB.MB003 rnas INVMBMB003,INVMB.MB067 as INVMBMB067,INVMB.MB032 AS INVMBMB032,PURMA.MA002 rnAS PURMAMA002,INVMB.UDF57 as INVMBUDF57,INVMB.UDF58 as INVMBUDF58,INVMC.MC007 rnas INVMCMC007,INVMC.MC007+SUM(PURTD.TD008-PURTD.TD015) as PUR001 rnFROM INVMB as INVMB rnLeft JOIN INVMC as INVMC On INVMB.MB001=INVMC.MC001 and INVMB.MB017=INVMC.MC002 rnLeft JOIN PURMA as PURMA On INVMB.MB032=PURMA.MA001 rnLeft JOIN PURTD as PURTD On INVMC.MC001=PURTD.TD004 rnWHERE (INVMC.MC007INVMB.UDF58 AND INVMC.MC002=INVMB.MB017 rnAND (MC001 LIKE'PF%' OR MC001 LIKE'BF%'))[/code]rnrn我想实现这样的功能 但是SUM又不能在WHERE后面,应该怎么写呢
sum某些行
现在有个table,简化如下:rne p vrne1 p1 v1rne1 p2 v2rne1 p3 v3rne2 p4 v4rne2 p5 v5rne2 p6 v6rn...rnrn想算出对于每一个e,其对应p和v在总值中的所占的比例,即rne p v ratiorne1 p1 v1 v1/(v1+v2+v3)rne1 p2 v2 v2/(v1+v2+v3)rne1 p3 v3 v3/(v1+v2+v3)rne2 p4 v4 v4/(v4+v5+v6)rne2 p5 v5 v5/(v4+v5+v6)rne2 p6 v6 v6/(v4+v5+v6)rn...rnrn我知道可以通过sum和group by算出一个表格rne sumrne1 v1+v2+v3rne2 v4+v5+v6rn...rn然后再这个表格和原来的表格做join来算ratio,但是我这个原始表格其实很大,担心多算一个表格耗时很长。rn所以想请教各位有没有可能,可以按照条件来sum某些行,比如我要sum所有e1的总值,又要sum所有e2的值。
SELECT查询不满足条件的结果怎么写
RT,数据库有一个表。rn有几条查询条件。rn我现在想知道要是想查询在这个表不满足那几条查询条件的SQL语句怎么写。
select查询多个纪录的条件怎么写
select查询多个纪录的条件怎么写rn例如有个表rnid datarn1 2.3rn1 5.3rn1 3.2rn2 1.3rn2 5.3rn3 1.3rn3 2.3rn3 2.4rn现在要插入数据1.3和5.3,要可以插入他们的id是新的4,有数据重复就不能插入rn现在表里已经有id=2的两个记录rn怎么写一句select查询出来?id未知
问个ibatis的查询配置文件条件怎么写
select bassto ,count(bassto) fromrn (select distinct id,bassto from so where begintime>=#begintime# and endtime <=#endtime#) as tocx rn group by basstornrnsql语句如上,但是在(select distinct id,bassto from so where begintime>=#begintime# and endtime <=#endtime#)rn中的where子句中还有些动态的查询条件不知道怎么去添加,数据库是DB2,请有经验的人给个例子,谢谢了
查询记录为空的条件怎么写
select * from t1 where dono='' 或‘null’不能得到想要的结果,就怎么写,才得查找该字段为空的值,dono为 char 15
参数化查询两个条件怎么写啊???
<%rnconnString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("pinpai.mdb") rnset conn = Server.CreateObject("Adodb.Connection") rnconn.ConnectionString = connString rnconn.open() rnset mycmd = Server.CreateObject("ADODB.Command") rnmycmd.ActiveConnection=conn rnmycmd.CommandText="select * from fenlei where name=? order by id"rnmycmd.Prepared = true rnset mypar = mycmd.CreateParameter("temp",129,1,50,"东东") rnmycmd.Parameters.Append mypar rnset myrs = mycmd.Execute rnset rs=myrs%>rn<%rnif not rs.eof thenrn response.Write(rs(1))rnend ifrnrs.closernset rs=nothing%>rn如果我想mycmd.CommandText="select * from fenlei where name=? and diqu=? order by id"rnset mypar = mycmd.CreateParameter("temp",129,1,50,"东东") rn下面该怎么写哈?rn就是查询两个条件该怎么写?
DataTable.Select 条件中两个不等于<>问题,急!!!
假设DataTable dt 里面有三条记录,类型都是string的,如下:rnrna brn0101 01rn0101 02rn0101 03rnrn我现在要去掉 0101 02 这条记录,我的写法如下:rnstring para1 = "0101";rnstring para2 ="02";rnrnDataSet ds = new DataSet();rnds.Merge(dt.Select(String.Format("a <> 0 and b <> 1", para1,para2)));rnrn正常ds中应该去掉只剩下0101 01 和0101 03这两条记录,但是执行结果却是一条记录都没有了。rnrn如果我换成 ds.Merge(dt.Select(String.Format("a =0 and b = 1", para1,para2)));rn这个结果就是对的rnrn是不是Select方法不支持两个<>啊?rnrn请指点。rnrnrnrnrnrn
请问变量K不等于a也不等于b也不等于c也不等于....的判断怎么写?
谢谢
oracle的“不满足”某个条件该怎么写
比如,我想写一个语句ninsert into t1(t1.a,t1.b)nselect (t2.a,t2.b) from t2 “不满足” n(t2.a=t1.a and t2.b=t1.b);n以上,求大神解惑。
如果当前cookie中的值为0 某些div不显示 怎么写
登陆成功后 会根据不同用户生成一个cookie 并跳转到主页rn主页中有3个divrn当cookie 值为1 时 div1 显示 div2和div3不显示rn当cookie 值为2 时 div2 显示 div1和div3不显示rn当cookie 值为3 时 div1 div2和div3都显示rn我原来是这样写的rn主页中的每个div中加了 写了3个 $d rn又写个if 判断 根据 cookie值不同 又写成 三个 $d="style='display: none' "rn这样的方法不好用也太笨了 rn求好方法rn