简体   繁体   English

嵌套where子句我给mysql sql语法例外

[英]nested where clause i mysql giving sql grammmar exception

I need help with MySQL as I am new to it. 我是MySQL的新手,需要帮助。

Basically for a selected date range i need the count of records where tracking number is present in a table called UniwareReport but airway bill no. 基本上对于选定的日期范围,我需要记录的计数,其中在称为UniwareReport的表中存在跟踪号,但有航空费用帐单号。 is not present in MisReport MisReport不存在

Below is what i attempted but i know that is not right. 以下是我尝试过的内容,但我知道这是不正确的。

select count (*) from UniwareReport
  where invoiceCreated >=:sDate
    and invoiceCreated <=:eDate
    and TrackingNumber NOT IN(select airwayBill from MisReport)


@Override
public Long getUniwareReportsCountInDateRange(String param) throws ParseException {
    String sDate = param;
    String eDate = param;
    //String oId = saleOrderNumber.trim();
    Query query;
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
    if (param.contains("-")) {
        String date[] = param.split("-");
        sDate = date[0];
        eDate = date[1];
    }
        query = sessionFactory.getCurrentSession().createQuery(
                "select count (*) from UniwareReport where invoiceCreated>=:sDate and invoiceCreated <=:eDate and (SELECT trackingNumber from UniwareReport where trackingNumber NOT IN(select airwayBill from MisReport))");
        Date startDate = DateUtils.addToDate(dateFormat.parse(sDate), Calendar.DATE, 0);
        Date endDate = DateUtils.addToDate(dateFormat.parse(eDate), Calendar.DATE, 1);
        query.setParameter("sDate", startDate);
        query.setParameter("eDate", endDate);
        //query.setParameter("oId", oId);
        return (Long) query.uniqueResult();

}

You don't need another SELECT from UniwareReport inside your subquery. 您在子查询中不需要UniwareReport中的另一个SELECT。 This should work: 这应该工作:

select count (*) from UniwareReport
  where invoiceCreated >= :sDate
    and invoiceCreated <= :eDate
    and TrackingNumber NOT IN (select airwayBill from MisReport)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM