大家好!我用VB写了一句很简单的SQL数据库查询语句如下:
select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And StaCode='G1001' order by dDate,ihour
(从GD_ZDZ_MUL_HOUR表中查询2009年10月G1001站点的stacode,dDate,iHour,T要素)
这句话可以查询到我要求的数据。我现在想同时查询到G1001和G1002两个站点里的stacode,dDate,iHour,T这些要素,我写了如下的一句查询语句:
select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And (StaCode = 'G1001' OR StaCode = 'G1002')  order by dDate,ihour
但是这句话查询出来的结果却是空的(注:单独查询G1002站点中的要素也可以得到我想要的数据)。请问我第二句话中的OR语句是不是写错了,正确的应该怎么写啊?请大家帮帮忙!万分感谢!

解决方案 »

  1.   

    眼拙,没发现错误。
    改成:select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And (StaCode in ('G1001','G1002')) order by dDate,ihour
    试下。
      

  2.   

    select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And ((StaCode = 'G1001') OR (StaCode = 'G1002')) order by dDate,ihouror (select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And StaCode='G1001' order by dDate,ihour) union (select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And StaCode='G1002' order by dDate,ihour)
      

  3.   

    select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And StaCode in ('G1001','G1002') order by dDate,ihour
      

  4.   

    我数据库表的结构是这样的:序号 字段名 数据类型 中文名 单位 备注
    0 StaCode 字符 站号 5位
    1 dDate 日期 年月日 YYYY-MM-DD
    2 iHour 整型 小时(北京时) …………13 T 单精度 气温 0.1℃
      

  5.   

    我用SQL server的企业管理器工具提取前几条数据是这样的:
    StaCode dDate iHour R T T_Max T_Max_Time T_Min T_Min_Time
    G1000 2009-12-11 18 0 15.6 18.6 18:59 15.6 18:59
    G1000 2009-12-11 19 0 15.2 15.6 19:25 14.7 19:25
    G1000 2009-12-11 20 0 14.2 15.2 20:57 14.1 20:57
    G1000 2009-12-11 21 0 13.7 14.2 21:48 13.7 21:48
    G1000 2009-12-11 22 0 13.5 13.7 22:29 13.3 22:29
      

  6.   

    在sql server里执行sql如何?
      

  7.   

    select stacode,dDate,iHour,T from GD_ZDZ_MUL_HOUR where Year(dDate)=2009 And Month(dDate)=10 And StaCode in ('G1001','G1002') order by dDate,ihour 
     
      

  8.   


    在SQL server里执行下面的查询语句都没有问题,可以得到我要的结果:
    SELECT StaCode, dDate, iHour, T FROM dbo.GD_ZDZ_MUL_HOUR WHERE (YEAR(dDate) = 2009) AND (MONTH(dDate) = 10) AND (StaCode = 'G1001' OR StaCode = 'G1002') ORDER BY dDate, iHourSELECT StaCode, dDate, iHour, T FROM dbo.GD_ZDZ_MUL_HOUR WHERE (YEAR(dDate) = 2009) AND (MONTH(dDate) = 10) AND (StaCode IN ('G1001', 'G1002')) ORDER BY dDate, iHour