Je l'instruction SQL suivante:tsql: comment rejoindre cette table?
SELECT TOP (100) PERCENT inv.CompanyID,
cust.CustID AS ClientID,
cust.CustName AS CustomerName,
inv.InvcKey, inv.PrimarySperKey AS SperKey,
inv.TranID AS InvoiceNumber,
inv.TranDate AS PostDate,
sper.SperName AS SalesPersonName,
inv.SalesAmt AS InvoiceSubAmount,
inv.TranAmt AS InvoiceTotal,
detl.ItemKey,
detl.InvoiceLineKey AS dtInvoiceLineKey,
detl.Description,
detl.UnitCost AS calcUnitCost,
detl.UnitPrice,
detl.ExtAmt,
(detl.UnitPrice - detl.UnitCost) * dist.QtyShipped - detl.TradeDiscAmt AS detLineGrossProfit,
dbo.tPA00175.chrJobNumber AS ARJobNumber,
dist.QtyShipped,
dbo.timItem.ItemID AS ARItemID,
dbo.timItemClass.ItemClassID AS ARItemClass,
dist.TradeDiscAmt,
dbo._v_GP_SalesTerr.SalesTerritoryID
FROM
dbo.tarInvoiceDetl AS detl RIGHT OUTER JOIN
dbo.timItem INNER JOIN
dbo.timItemClass ON dbo.timItem.ItemClassKey = dbo.timItemClass.ItemClassKey ON detl.ItemKey = dbo.timItem.ItemKey RIGHT OUTER JOIN
dbo._v_GP_SalesTerr RIGHT OUTER JOIN
dbo.tarInvoice AS inv INNER JOIN
dbo.tarCustomer AS cust ON inv.CustKey = cust.CustKey ON dbo._v_GP_SalesTerr.CustKey = cust.CustKey ON
detl.InvcKey = inv.InvcKey LEFT OUTER JOIN
dbo.tPA00175 INNER JOIN
dbo.paarInvcHdr ON dbo.tPA00175.intJobKey = dbo.paarInvcHdr.intJobKey ON inv.InvcKey = dbo.paarInvcHdr.InvcKey LEFT OUTER JOIN
dbo.tarInvoiceLineDist AS dist ON detl.InvoiceLineKey = dist.InvoiceLineKey LEFT OUTER JOIN
dbo.tarSalesperson AS sper ON inv.PrimarySperKey = sper.SperKey
Si je voulais ajouter un champ appelé Inventory.LastUnitCost où l'inventaire avait une clé de substitution appelée ItemKey pour la table « timitem », comment pourrais-je ajouter ceci là où il chercherait simplement le champ LastUnitCost par itemkey? S'il n'y avait pas un LastUnitCost correspondant à la table timitem, il serait juste null.
Chaque fois que je tente de l'ajouter comme dans Inner Join à timItem sur Inventory.itemkey = timItem.itemkey, il affecte le timItemClass. Champ ItemClassID où certains des catorgies n'apparaissent plus.
merci d'avance.
Vous pouvez également utiliser ISNULL ou COALESCE avec l'élément sélectionné pour obtenir une valeur par défaut de Saner, puisque laisser des zéros peut faire ... bizarre ... code client parfois. –
Bon point Joel. –
n'avez-vous pas besoin d'une sorte de jointure pour le lier dans la requête? – phill