与多数据库相关的oracle sql

时间:2018-03-30 09:25:37

标签: sql oracle

SELECT t.FIRST_NAME,
       t.LAST_NAME,
       t.GENDER,
       t.DOB,
       subj.NAME sub_name,
       coll.NAME college_name,
       univ.NAME university_name,
       dom.name domain,
       countr.NAME country_name
  FROM TEACHER_TB t,
       SUBJECT_TB subj,
       COLLG_TCHR_TB ct,
       COLLEGE_TB coll,
       UNIVERSITY_TB univ,
       DOMAIN_TB dom,
       COUNTRY_TB countr
 WHERE     t.SUBJECT_ID = subj.SUBJECT_ID
       AND ct.TEACHER_ID = t.TEACHER_ID
       AND coll.COLLEGE_ID = ct.COLLEGE_ID
       AND coll.UNIVERSITY_ID = univ.UNIVERSITY_ID
       AND dom.DOMAIN_ID = coll.DOMAIN_ID
       AND countr.COUNTRY_ID = univ.COUNTRY_ID

这个查询给了我我的数据,但在那10行中,我只需要选择那些在1个以上大学教学的名字(姓名r tecaher名称)。这里需要一些帮助,如何实现这两个名字的fectchng

1 个答案:

答案 0 :(得分:2)

String getAgeInOther(int year, int month, int day) {
    Calendar today = Calendar.getInstance();
    Calendar birth = Calendar.getInstance();
    birth.set(year, month, day);
    Calendar temp = Calendar.getInstance();
    temp.set(year, month, day);
    int totalDays = 0;

    int intMonth=0,intDays=0;

    for (int iYear = birth.get(Calendar.YEAR); iYear <= today.get(Calendar.YEAR); iYear++) {
        if (iYear == today.get(Calendar.YEAR) && iYear == birth.get(Calendar.YEAR)) {

            for (int iMonth = birth.get(Calendar.MONTH); iMonth <= today.get(Calendar.MONTH); iMonth++) {
                temp.set(iYear, iMonth, 1);
                if ((iMonth == today.get(Calendar.MONTH)) && (iMonth == birth.get(Calendar.MONTH))) {

                    totalDays += today.get(Calendar.DAY_OF_MONTH) - birth.get(Calendar.DAY_OF_MONTH);

                } else if ((iMonth != today.get(Calendar.MONTH)) && (iMonth != birth.get(Calendar.MONTH))) {

                    totalDays += temp.getActualMaximum(Calendar.DAY_OF_MONTH);
                    intMonth++;

                }else  if ((iMonth == birth.get(Calendar.MONTH))) {

                    totalDays +=( birth.getActualMaximum(Calendar.DAY_OF_MONTH)- birth.get(Calendar.DAY_OF_MONTH));

                } else  if ((iMonth == today.get(Calendar.MONTH))){

                    totalDays += today.get(Calendar.DAY_OF_MONTH);



                    if (birth.get(Calendar.DAY_OF_MONTH)<today.get(Calendar.DAY_OF_MONTH))
                    {
                        intMonth++;
                        intDays=today.get(Calendar.DAY_OF_MONTH)-birth.get(Calendar.DAY_OF_MONTH);
                    }else {
                        temp.set(today.get(Calendar.YEAR),today.get(Calendar.MONTH)-1,1);
                        intDays=temp.getActualMaximum(Calendar.DAY_OF_MONTH)-birth.get(Calendar.DAY_OF_MONTH)+today.get(Calendar.DAY_OF_MONTH);
                    }


                }


            }

        } else if ((iYear != today.get(Calendar.YEAR)) && (iYear != birth.get(Calendar.YEAR))) {



            for (int iMonth = 0; iMonth < 12; iMonth++) {
                temp.set(iYear, iMonth, 1);
                totalDays += temp.getActualMaximum(Calendar.DAY_OF_MONTH);
                intMonth++;
            }


        } else if (((iYear) == birth.get(Calendar.YEAR))) {

            for (int iMonth = birth.get(Calendar.MONTH); iMonth < 12; iMonth++) {
                temp.set(iYear, iMonth, 1);
                if ((iMonth == birth.get(Calendar.MONTH))) {

                    totalDays += (birth.getActualMaximum(Calendar.DAY_OF_MONTH)-birth.get(Calendar.DAY_OF_MONTH));

                } else {
                    intMonth++;
                    totalDays += temp.getActualMaximum(Calendar.DAY_OF_MONTH);
                }
            }


        } else if (iYear == today.get(Calendar.YEAR)) {
            for (int iMonth = 0; iMonth <= today.get(Calendar.MONTH); iMonth++) {

                temp.set(iYear, iMonth, 1);
                if ((iMonth == today.get(Calendar.MONTH))) {

                    totalDays += today.get(Calendar.DAY_OF_MONTH);

                    if (birth.get(Calendar.DAY_OF_MONTH)<today.get(Calendar.DAY_OF_MONTH))
                    {
                        intMonth++;
                        intDays=today.get(Calendar.DAY_OF_MONTH)-birth.get(Calendar.DAY_OF_MONTH);
                    }else {
                        temp.set(today.get(Calendar.YEAR),today.get(Calendar.MONTH)-1,1);
                        intDays=temp.getActualMaximum(Calendar.DAY_OF_MONTH)-birth.get(Calendar.DAY_OF_MONTH)+today.get(Calendar.DAY_OF_MONTH);
                    }

                } else {
                    intMonth++;
                    totalDays += temp.getActualMaximum(Calendar.DAY_OF_MONTH);
                }
            }
        }
    }

    int  ageYear=intMonth/12;
    int  ageMonth=intMonth%12;
    int ageDays=intDays;
    //TODO if you want age in YEAR:MONTH:DAY REMOVE COMMENTS
   //TODO  return ageYear+":"+ageMonth+":"+ageDays;  
    return ""+totalDays;//todo TOTAL AGE IN DAYS

}