如何在sql中的两个范围之间搜索确切的值?

时间:2014-05-01 09:09:31

标签: mysql sql netbeans-7

我的表格中有这些字段

INVOICE_NUMBER

日期

ITEM_CODE

ITEM_NAME

数量

总计

我希望过滤并在时间段之间找到网络中的表格,如同

示例:在2014.01.01至2014.03.01期间的项目通知项目1的总销售

我使用的查询是

        String sql="select sales_invoice_no,date,item_name,quantity,free,total FROM  sales_invoice2items where date between '"+repdate.getText()+"' and '"+repdate2.getText()+"'";
        Statement st1 = database.getconnection().prepareStatement(sql);
        ResultSet rs = st1.executeQuery(sql);

        reptable1.setModel(DbUtils.resultSetToTableModel(rs));

我的代码工作正常,它可以过滤时间段之间的值,但它不会过滤我想要的项目请帮助。

3 个答案:

答案 0 :(得分:0)

您似乎没有添加过滤器:

这是你的代码:

String sql="select sales_invoice_no,date,item_name,quantity,free,total FROM  sales_invoice2items where date between '"+repdate.getText()+"' and '"+repdate2.getText()+"'";

应该是:

String sql="select sales_invoice_no,date,item_name,quantity,free,total FROM  sales_invoice2items where Item_name = item1 and date between '"+repdate.getText()+"' and '"+repdate2.getText()+"'";

答案 1 :(得分:0)

尝试如下:

select 
sales_invoice_no,date,item_name,quantity,free,total 
FROM  sales_invoice2items 
where item_code='item1' and date between 'repdate1' and 'repdate2';

答案 2 :(得分:0)

它没有过滤,因为你没有告诉它。将项目名称添加到WHERE子句:

String sql="select sales_invoice_no,date,item_name,quantity,free,total "+
        "FROM  sales_invoice2items where date between '"+
        repdate.getText()+"' and '"+repdate2.getText()+"' and item_name='<<name>>'";

另外,请正确使用预准备语句,不要将这些值连接起来,但要将它们与查询分开。