J'ai besoin d'un peu d'aide pour exprimer en langage SQLAlchemy mon code comme suit :
SELECT
s.agent_id,
s.property_id,
p.address_zip,
(
SELECT v.valuation
FROM property_valuations v WHERE v.zip_code = p.address_zip
ORDER BY ABS(DATEDIFF(v.as_of, s.date_sold))
LIMIT 1
) AS back_valuation,
FROM sales s
JOIN properties p ON s.property_id = p.id
Sous-requête interne visant à obtenir la valeur d'une propriété à partir d'une table propert_valuations
avec des colonnes ( zip_code INT, valuation DECIMAL, as_if DATE
) la plus proche de la date de vente du tableau sales
. Je sais comment le réécrire, mais je suis complètement bloqué. order_by
Je ne peux pas préparer une sous-requête pour passer le membre ordonnateur plus tard.
J'ai actuellement les questions suivantes :
subquery = (
session.query(PropertyValuation)
.filter(PropertyValuation.zip_code == Property.address_zip)
.order_by(func.abs(func.datediff(PropertyValuation.as_of, Sale.date_sold)))
.limit(1)
)
query = session.query(Sale).join(Sale.property_)
Comment combiner ces requêtes ?