关于SQL的查询条件设置问题(2分)

  • 主题发起人 主题发起人 maomao888
  • 开始时间 开始时间
M

maomao888

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好:
我现在想从数据库表中查询两个字段,一个是物料编号,一个是物料名称,我的物料编号为:
X41023025。。,X52124。。。,X118612。。。等,编号的前三位对应的是物料大类,我想请教
如何对编号用SQL语句进行取位,比如我只取前三位,一次性把所对应的物料大类全部统计出来。
便:SELECT WLBH,WLMC FROM T_WLDY
WHERE (取WLBH的前三位)
 
select wlbh, wlmc form t_wldy where wlbh like '前三位%'
 
是TBEA的么?
SELECT WLBH,WLMC FROM T_WLDY WHERE WLBH like 'X41%';
 
楼上的朋友都说了,用模糊查询,
 
如果你用的是SQL SERVER,
那么函数 left(s, n), right(s, n)分别是取字段s左边、右边;
ltrim(s), rtrim(s) 分别是去左空格、右空格。
比如取编号左边三位:
left(ltrim(编号), 3)
 
select wlbh, wlmc form t_wldy where wlbh like '前三位%'
 
dlnew 谢谢你的答案,我会试试的。
 
dlnew-2我还可以问你一个问题吗:
还是关于查询的问题:
我在QUERY中写了一段SQL,如下:
select b.cbzxbh,b.cbzxmc,b.ccpnjh/12,b.bcpnjh/12,sum(a.drcl),0,sum(a.drcl)/(b.ccpnjh/12),0 from db2admin.t_scrbmx a,erptest.t_acpczjh b
where b.cbzxbh=a.jgbh and a.rq>:d1 and a.rq<:d2
group by b.cbzxbh,b.cbzxmc,b.ccpnjh,b.bcpnjh
union all
select b.cbzxbh,b.cbzxmc,b.ccpnjh/12,b.bcpnjh/12,0,sum(c.drcl),0,sum(c.drcl)/(b.bcpnjh/12) from db2admin.t_scrbmx c,erptest.t_acpczjh b
where b.cbzxbh=c.jgbh and c.rq>:d1 and c.rq<:d2 and c.wlbh like '%-%'
group by b.cbzxbh,b.cbzxmc,b.ccpnjh,b.bcpnjh
其实:D1,D2,是两个参数,我通过以下在一个BUTTON中,给它传的参数:如下:
form1.Query1.ParamByName('d1').asdate:=strtodate(form1.edit3.text);
form1.query1.ParamByName('d2').asdate:=strtodate(form1.edit4.text);
if form1.query1.prepared=false then
form1.query1.prepare;
form1.query1.open;
end;

此外,我还想分别通过BHZXBH,JHNF,JGBH,来分别进行(通过传参数)查询,这两个字段,分
别从我上面SQL写到的erptest.t_acpczjh 提取。
 
BHZXBH,JHNF, JGBH 是什么型的字段?
你的意思是不是要动态改变where子句?
 
CBZXBH, JGBH这两人是string型的,JHNF,是date型的,是的,我想在不改变上面的WHERE中的条件的同时,
将这三个查询条件也放进去,这样,我可以分别用这四种方式进行查询,比如,我输入一个
CBZXBH,就查以按这个要求查出,或者输入JGBH也可以单独按这个要求查出。其他几个也可以,
现在我已经要以输入D1,D2两个日期进行查询了,谢谢!
 
后退
顶部