私はAdempiereで働いており、現在はpgAdminIIIでadempiereのデータベースを使用しています。このコードを入手し、SQLを3日間学習しています。
だから私はこのコードを持っています:
SELECT t.m_transaction_id, t.ad_client_id, t.ad_org_id, t.movementtype,
t.movementdate, t.movementqty, t.m_attributesetinstance_id,
asi.m_attributeset_id, asi.serno, asi.lot, asi.m_lot_id, asi.guaranteedate,
t.m_product_id, p.value, p.name, p.description, p.upc, p.sku, p.c_uom_id,
p.m_product_category_id, p.classification, p.weight, p.volume, p.versionno,
t.m_locator_id, l.m_warehouse_id, l.x, l.y, l.z, t.m_inventoryline_id,
il.m_inventory_id, t.m_movementline_id, ml.m_movement_id, t.m_inoutline_id,
iol.m_inout_id, t.m_productionline_id, prdl.m_productionplan_id, prdp.m_production_id,
t.c_projectissue_id, pjl.c_project_id,
COALESCE(il.line, ml.line, iol.line, prdl.line, pjl.line)
AS line,
daysbetween(
(T .movementdate):: TIMESTAMP WITH TIME ZONE,
getdate()
)AS movementagedays
FROM adempiere.m_transaction t
JOIN adempiere.m_locator l ON t.m_locator_id = l.m_locator_id
JOIN adempiere.m_product p ON t.m_product_id = p.m_product_id
LEFT JOIN adempiere.m_attributesetinstance asi ON t.m_attributesetinstance_id =
asi.m_attributesetinstance_id
LEFT JOIN adempiere.m_inventoryline il ON t.m_inventoryline_id = il.m_inventoryline_id
LEFT JOIN adempiere.m_movementline ml ON t.m_movementline_id = ml.m_movementline_id
LEFT JOIN adempiere.m_inoutline iol ON t.m_inoutline_id = iol.m_inoutline_id
LEFT JOIN adempiere.m_productionline prdl ON t.m_productionline_id =
prdl.m_productionline_id
LEFT JOIN adempiere.m_productionplan prdp ON prdl.m_productionplan_id =
prdp.m_productionplan_id
LEFT JOIN adempiere.c_projectissue pjl ON t.c_projectissue_id = pjl.c_projectissue_id;
これは美しいテーブルで終わります(rv_transactionを表示):
テーブルhttp://imageshack.us/a/img829/3558/tablerl.png
最後の列はmovementagedaysで、製品を操作しなかった日数を示しています。
Movementagedays列の対応する行の値が-90未満の場合、「90日以上」で終わる列「islager」を1つ追加したいだけです。
だから私は次のようなものを書きました
CASE WHEN movementagedays < -90 THEN 'more than 90 days'
END AS isLager
FROM rv_transaction
しかし、それが正しいかどうか、そしてどこにそれを置くべきかはわかりません。 また、大きなコードが適切に記述されていたり、パフォーマンスが最適化されている場合は、idkを使用します。
誰かが私を助けてくれたら嬉しいです。申し訳ありませんが、私のSQLスキルは私の英語と同様に悪いです