J'ai une requête qui a fonctionné dans notre module de données SQL Firebird.Migration de requête Firebird vers MySQL - Sélectionnez Inner Join Sous-requête
Nous avons migré vers MySQL et toutes mes requêtes ne posent aucun problème sauf pour celui-ci.
S'il vous plaît aidez-moi à résoudre ce problème. Je reçois une erreur:
Failed to Execute. Unknown column 'part.id' in 'on clause'
Ma requête Firebird:
SELECT vendor.name AS "Vendor Name",
Cast(Cast(vendorparts.lastdate AS date) AS CHAR(10)) AS "Last Date",
CASE product.price
WHEN '0' THEN 'CONFIRM'
WHEN NULL THEN 'CONFIRM'
ELSE Round(product.price, 2)
end AS "D-Price",
Cast(vendorparts.lastcost AS DECIMAL(18, 2)) AS "Last Cost",
Cast(lowestcost.lowestcost AS DECIMAL(18, 2)) AS "Lowest Cost",
Cast(highestcost.highestcost AS DECIMAL(18, 2)) AS "Highest Cost",
part.num AS "Part Number",
part.description AS "Part Description"
FROM vendor,
vendorparts,
part,
product
INNER JOIN (SELECT vendorparts.partid,
Max(vendorparts.lastcost) AS Highestcost
FROM vendorparts
GROUP BY vendorparts.partid) AS highestcost
ON part.id = highestcost.partid
INNER JOIN (SELECT vendorparts.partid,
Min(vendorparts.lastcost) AS Lowestcost
FROM vendorparts
GROUP BY vendorparts.partid) AS lowestcost
ON part.id = lowestcost.partid
WHERE vendor.id = vendorparts.vendorid
AND product.partid = part.id
AND vendorparts.partid = part.id
AND vendorparts.lastcost <> 0
Toutes les tables sont dans la base de données, sauf pour lowestcost
et highestcost
qui ont été créés dans les sous-requêtes.
J'espère que ma demande est clairement écrite. Mais pour résumer, j'ai besoin que cette requête Firebird fonctionne pour migrer vers MySQL.
Pourquoi cela fonctionnerait-il dans Firebird mais pas dans MySQL?
ne pas mélanger des virgules et la syntaxe de jointure jointure interne syntaxe .. –
Puis-je demander pourquoi vous migrez vers MySQL? – skafinski
@skafinski Notre système de gestion des stocks mis à jour vers une nouvelle version hier. L'ensemble du système a migré de Firebird SQL vers MySQL. Jusqu'à présent, les performances ont été nettement améliorées et les requêtes sont compilées beaucoup plus rapidement. –