oracle数据库里有二个表,一个是pat,一个是pats。二个表都有ID字段。查询时,需要将二个表里的内容综合用DBGRID显示出来。用一个SQL语句能写吗,怎么写?

解决方案 »

  1.   


    SELECT A.*, B.* FROM PAT A, PATS B
     WHERE A.ID = B.ID
      

  2.   

    adoquery4.SQL.add('select A.patient_id, A.name,A.sex from pat_master_index A, pats_IN_hospital B where A.PATIENT_ID=B.PATIENT_ID and A.patient_id like ''8%'' and to_char(A.date_of_birth,''mmdd'')=to_char(sysdate,''mmdd'') ');
    写的不对吗,怎么不显示
      

  3.   


    要么是没有PATIENT_ID以8开头,且生日是今天的人
    要么是你连接数据源出了问题
      

  4.   

    select A.patient_id, A.name,A.sex from pat_master_index A, pats_IN_hospital B where A.PATIENT_ID=B.PATIENT_ID and A.patient_id like '8%' and to_char(A.date_of_birth,'mmdd')=to_char(sysdate,'mmdd') 你把上面的语句放到PL/SQL 执行验证就知道了!
      

  5.   

    就是说SQL语句写的没问题喽。我再看看。谢了
      

  6.   

    还是我系统时间的事。sysdate那个地方如果要是写变量的话,该怎么写,就是用户输入日期,而不是取系统时间。
      

  7.   


    adoquery4.SQL.add('select A.patient_id, A.name,A.sex from pat_master_index A, pats_IN_hospital B where A.PATIENT_ID=B.PATIENT_ID and A.patient_id like ''8%'' and to_char(A.date_of_birth,''mmdd'')=to_char(:QUERY_DATE,''mmdd'') ');要传值进去:
    adoquery4.Parameters.ParamByName('QUERY_DATE').Value := 
      

  8.   

    adoquery4.Parameters.ParamByName('QUERY_DATE').Value := DateTimePicker1.Date;
      

  9.   

    adoquery4.SQL.add('select A.patient_id, A.name,A.sex,A.DATE_OF_BIRTH,B.BED_NO,C.DEPT_NAME from pat_master_index A, pats_IN_hospital B, DEPT_DICT C where A.PATIENT_ID=B.PATIENT_ID  and b.dept_code=c.dept_code and B.patient_id like ''8%'' and to_char(A.date_of_birth,''mmdd'')=to_char(:query_date,''mmdd'') ');
    我刚才又加了一个表,可是它说最多255个elements,而且我还想加一个表呢。写不下怎么办?
      

  10.   

    出现这个错误 string literals may have at most 255 elements.
      

  11.   

    应该是DELPHI中一行语句不能超过255。如果分行写的话,该怎么写
      

  12.   

    adoquery4.SQL.add('select A.patient_id, A.name,A.sex,A.DATE_OF_BIRTH,B.BED_NO,C.DEPT_NAME'
      + ' from pat_master_index A, pats_IN_hospital B, DEPT_DICT C'
      + ' where A.PATIENT_ID=B.PATIENT_ID  and b.dept_code=c.dept_code'
      + ' and B.patient_id like ''8%'''
      + ' and to_char(A.date_of_birth,''mmdd'')=to_char(:query_date,''mmdd'') ');
      

  13.   

    出现错误
    sql command not properly ended
      

  14.   


    完全复制我下面的看下:
    adoquery4.SQL.add(' SELECT A.PATIENT_ID, A.NAME, A.SEX, A.DATE_OF_BIRTH, B.BED_NO, C.DEPT_NAME'
        + '   FROM PAT_MASTER_INDEX A, PATS_IN_HOSPITAL B, DEPT_DICT C'
        + '  WHERE A.PATIENT_ID = B.PATIENT_ID'
        + '    AND B.DEPT_CODE = C.DEPT_CODE'
        + '    AND B.PATIENT_ID LIKE ''8%'''
        + '    AND TO_CHAR (A.DATE_OF_BIRTH, ''mmdd'') = TO_CHAR (:QUERY_DATE, ''mmdd'')');