Java 如何动态生成具有特定列的sql查询
我有几张桌子。我还有一个问题。我的问题是使用Java动态生成SQL查询 我在单独的表中有以下字段:Java 如何动态生成具有特定列的sql查询,java,sql,Java,Sql,我有几张桌子。我还有一个问题。我的问题是使用Java动态生成SQL查询 我在单独的表中有以下字段: Collumn name status po_number, Y unit_cost, Y placed_date , Y date_closed, Y scheduled_arrival_date Y date_closed Y order_q
Collumn name status
po_number, Y
unit_cost, Y
placed_date , Y
date_closed, Y
scheduled_arrival_date Y
date_closed Y
order_quantity Y
roll_number N
product_sku N
product_category_name N
rec_vendor_quantity Y
vendor_name Y
et_conversion_unit_quantity Y
当状态为Y
时,我必须从中生成一个查询,这里的问题是上述列的某个时间
以下查询是上述查询的输出:
这里我已经包含了所有的列,但是我必须将状态为N
的列导出,请帮助我使用java解释查询
select
pi.po_number,poi.unit_cost,pi.placed_date CreateDate,
case when isnull(pi.date_closed) then pi.scheduled_arrival_date
else pi.date_closed end as ReceviedDate,
poi.order_quantity,poi.roll_number,p.product_sku product_name,
pc.product_category_name,poi.rec_vendor_quantity,pv.vendor_name,p.et_conversion_unit_quantity,pi.note
from
purchase_order as pi,
purchase_order_inventory as poi,
product_vendors as pv,
products AS p,
product_categories AS pc
where
pi.purchase_order_id=poi.purchase_order_id and
pc.product_category_id=p.product_category_id and
poi.product_id = p.product_id and
poi.product_category_id=pc.product_category_id and
pi.vendor_id=pv.product_vendor_id and
( ( pi.date_closed >= '2012-01-01' and pi.date_closed <='2012-09-05 23:59:59' )
or ( pi.scheduled_arrival_date >= '2012-01-01' and pi.scheduled_arrival_date <='2012-09-05 23:59:59') ) and
pi.po_type=0
and pi.status_id = 0 and poi.transaction_type = 0
order by pi.po_number
步骤3:结果查询{query=选择采购订单。采购订单号,采购订单。下订单日期,采购订单。关闭日期,采购订单。计划到货日期,采购订单库存。单位成本,采购订单库存。订单数量,采购订单库存。卷号,采购订单库存。记录供应商数量,产品。产品sku,产品。et转换单位数量,pr产品类别。产品类别名称,产品供应商。供应商名称来自采购订单采购订单,采购订单库存采购订单库存,产品产品,产品类别产品类别,产品供应商产品供应商}
但这不是我想要的,请帮助我构造我给出的查询。两个查询 您需要进行两个查询:
映射
,其中JoinInfo至少有:
JoinInfo
+ conditionToAdd // by example "A.col1 = B.col2"
+ dependsOnTable // by example "A" to indicate that A must be present when B is present
因此,您可以使用:
不管怎么说……我觉得你遇到了很多麻烦。为什么这么有活力?两个问题 您需要进行两个查询:
映射
,其中JoinInfo至少有:
JoinInfo
+ conditionToAdd // by example "A.col1 = B.col2"
+ dependsOnTable // by example "A" to indicate that A must be present when B is present
因此,您可以使用:
不管怎样……我觉得你遇到了很多麻烦。为什么这么有活力呢?你必须一步一步地处理这件事 首先,您必须创建一个查询,该查询将返回所有具有
status='Y'
然后将列名称放入字符串列表中
List<String> list = new List<String>();
while(rs.next()){
list.add(rs.getString(columnNumber));
}
你必须一步一步地处理这件事 首先,您必须创建一个查询,该查询将返回所有具有
status='Y'
然后将列名称放入字符串列表中
List<String> list = new List<String>();
while(rs.next()){
list.add(rs.getString(columnNumber));
}
这太匹配代码了,你的问题在哪里?你的代码有什么问题吗?如果你看到第1步:我按列给出了查询顺序,结果也很好,但在分析查询时顺序发生了变化,请看第3步,即生成的查询。即使你能指导我构造以下
select purchas,也足够了电子订单.采购订单号,采购订单库存.单位成本,采购订单.下订单日期,案例为空(采购订单.日期\u关闭)然后是采购订单、计划到货日期、其他采购订单、日期、结束日期、采购订单、库存、订单数量、采购订单、库存、卷号、p产品、sku产品、产品名称、产品类别、产品类别、采购订单、库存、记录供应商数量、产品供应商、供应商名称、产品、et换算单位数量太匹配代码了,你的问题在哪里?你的代码有什么问题吗?如果你看到步骤1:我已经按列给出了查询顺序,结果也很好,但是在分析查询时顺序发生了变化,请看一下步骤3,生成的查询。即使你可以指导我构造以下select purchase\o,也足够了订单号、采购订单号或