FYI - このクエリはExcelから実行されます。私は、日付範囲を設定するためのプロンプトフィールドを持っています。ここ SQL ServerクエリINNER JOIN - エントリがありません
は私が誰かからもらったオリジナルの作業クエリです:SELECT
SalesInvoiceItems.FreeTextItem, SalesInvoiceItems.Product,
SalesInvoiceItems.ItemDescription, SalesInvoiceItems.Quantity,
SalesInvoiceItems.ItemValue, Customers.CustomerId, Customers.CustomerName,
SalesInvoices.SalesInvoiceId, SalesInvoices.EffectiveDate, Countries.CountryId,
SalesInvoiceItems.ItemType
FROM
Winman.dbo.Countries Countries, Winman.dbo.Customers Customers,
Winman.dbo.Products Products, Winman.dbo.SalesInvoiceItems SalesInvoiceItems,
Winman.dbo.SalesInvoices SalesInvoices
WHERE
Customers.Customer = SalesInvoices.Customer
AND SalesInvoiceItems.SalesInvoice = SalesInvoices.SalesInvoice
AND Customers.Country = Countries.Country
AND ((SalesInvoices.SystemType='F')
AND (SalesInvoiceItems.ItemType<>'T')
AND (SalesInvoices.EffectiveDate>=? And SalesInvoices.EffectiveDate<=?)
AND (SalesInvoiceItems.ItemValue<>$0))
ORDER BY
SalesInvoiceItems.Quantity DESC
ここ
重要ビットであるItemType
(それが唯一のTをすることができ、ウィッヒが除外され、P - 製品とNのために - フリーテキスト項目について)
テーブルProducts
を追加して、ProductID
を取得する必要がありました。もちろんWHERE
句内のコードの下に追加:
AND Products.Product = SalesInvoiceItems.Product
インクルードは製品ではないとして、任意のフリーテキスト項目を起動に失敗します。
だから私はそれが(エントリの両方のPおよびNタイプを育てる)私の問題を解決することを望んで参加してクエリを書き直し:
SELECT
Products.ProductId,
SalesInvoiceItems.FreeTextItem,
SalesInvoiceItems.Product,
SalesInvoiceItems.ItemDescription,
SalesInvoiceItems.Quantity,
SalesInvoiceItems.ItemValue,
Customers.CustomerId,
Customers.CustomerName,
SalesInvoices.SalesInvoiceId,
SalesInvoices.EffectiveDate,
Countries.CountryId,
SalesInvoiceItems.ItemType
FROM
Winman.dbo.SalesInvoiceItems AS SalesInvoiceItems
INNER JOIN
Winman.dbo.Products AS Products ON Products.Product = SalesInvoiceItems.Product
INNER JOIN
Winman.dbo.SalesInvoices AS SalesInvoices ON SalesInvoices.SalesInvoice= SalesInvoiceItems.SalesInvoice
INNER JOIN
Winman.dbo.Customers AS Customers ON Customers.Customer = SalesInvoices.Customer
INNER JOIN
Winman.dbo.Countries AS Countries ON Countries.Country = Customers.Country
WHERE
((SalesInvoices.SystemType='F')
AND (SalesInvoiceItems.ItemType<>'T')
AND (SalesInvoices.EffectiveDate >= ? And SalesInvoices.EffectiveDate <= ?)
AND (SalesInvoiceItems.ItemValue <> $0)
)
ORDER BY
SalesInvoiceItems.Quantity DESC
が、これはまだとして機能し、 - フリーテキスト項目を無視しています!私は明らかに何かが欠けている..どのようにフリーテキストの項目には、ProductID
を持っていないにもかかわらず、両方の製品とフリーテキスト項目をもたらすことができますか?
はいコース!!!私はそれについても考えなかった!私はそれを受け入れるようにマイクロソフトのクエリと戦わなければならなかった... – Elen