2

私はCrystalReportsで自動レポートを作成するように取り組んでいます。これには、既存の事前に作成されたビューにテーブルを追加する必要があります。ビューにユニオン操作が含まれているため、ビューを通常どおりに使用できません。私が行ったことは、データを手動で追加することです(約半分)。

レポートに必要なアイテムはtblSOPartsUsed.Memoです。これを両方の選択クエリに追加しました。tblCustomerInventoryとtblSOPartsUsedの間の結合では、.MemoテーブルはPartsUsedテーブルにのみ表示され、CustomerInventoryには表示されません。

  1. 最初にクエリの場所を選択します

                  tblCustomerInventory.SerialNumber AS ExchangeSerialNumber, **tblSOPartsUsed.Memo AS SOPartsNotes**, tblInvoiceDetail.Taxable AS DetailIsTaxable, 
    
  2. クエリの場所から最初

                  tblCustomerInventory FULL OUTER JOIN
                  tblSOPartsUsed INNER JOIN
    

2番目のSelectとFromについてもまったく同じ方法で概説しました。

誰かが光を当ててくれませんか、私はすべてを試しました!

完全なコードは以下のとおりです...

SELECT InvoiceAssemblyPriceBook.Features AS AssemblyFeatures,
    tblInvoiceAssemblyDetail.EachQuantity AS AssemblyEachQuantity,
    tblInvoiceAssemblyDetail.FKInvoiceDetail AS AssemblyFKInvoiceDetail,
    tblInvoiceAssemblyDetail.InvoiceAssemblyDetailKeyID,
    tblInvoiceAssemblyDetail.ItemID AS AssemblyItemID,
    tblInvoiceAssemblyDetail.ItemDescription AS AssemblyItemDescription,
    tblInvoiceAssemblyDetail.PrintOnInvoice AS AssemblyPrintOnInvoice,
    tblInvoiceAssemblyDetail.Quantity AS AssemblyQuantity,
    tblInvoiceAssemblyDetail.SellingPrice AS AssemblySellingPrice,
    tblInvoiceAssemblyDetail.TotalSellingPrice AS AssemblyTotalSellingPrice,
    tblInvoiceAssemblyDetail.Type AS AssemblyType,
    tblInvoiceAssemblyDetail.UnitOfMeasure AS AssemblyUnitOfMeasure,
    tblInvoiceDetail.AssemblyType AS DetailAssemblyType,
    tblInvoiceDetail.InvoiceDetailKeyID,
    tblInvoiceDetail.ItemDescription AS DetailItemDescription,
    tblInvoiceDetail.ItemID AS DetailItemID,
    tblInvoiceDetail.PrintOnInvoice AS DetailPrintOnInvoice,
    tblInvoiceDetail.Quantity AS DetailQuantity,
    tblInvoiceDetail.SellingPrice AS DetailSellingPrice,
    tblInvoiceDetail.TotalSellingPrice AS DetailTotalSellingPrice,
    tblInvoiceDetail.Type AS DetailType,
    tblInvoices.AccountNumber,
    tblInvoices.Comments,
    tblInvoices.ContractNumber,
    tblInvoices.Deposit,
    tblInvoices.Freight,
    tblInvoices.GSTax,
    tblInvoices.InvoiceDate,
    tblInvoices.InvoiceNumber,
    tblInvoices.PaidDate,
    tblInvoices.QuoteNumber,
    tblInvoices.SalesTaxPercent,
    CASE 
        WHEN tblInvoiceDetail.SoNumber IS NULL
            THEN tblInvoices.SONumber
        ELSE tblInvoiceDetail.SoNumber
        END AS SONumber,
    tblInvoices.STATUS,
    tblInvoices.StatusDate,
    tblInvoices.Tax,
    tblInvoices.TotalAmountDue,
    tblInvoices.TotalComment,
    tblInvoices.TotalDollarsDiscounted,
    tblInvoices.TotalGrossSell,
    tblInvoices.TotalNetSell,
    tblInvoices.TradeIn,
    tblInvoices.WorkOrderNumber,
    tblPriceLevels.IsRepairLevel,
    tblServiceOrders.ContractNumber AS ServiceOrderContractNumber,
    tblSysCompanySettings.HideGSTaxRelatedInformation,
    tblSysCompanySettings.ItemsServicedPrintOnInvoice,
    tblSysDisclaimerSettings.SalesInvoiceDisclaimer,
    tblSysDisclaimerSettings.ServiceInvoiceDisclaimer,
    tblSysPBSettings.PrintItemorPartNum,
    VoidedByReps.RepName AS VoidedByRepName,
    tblInvoices.TotalNetInvoice,
    InvoiceDetailPriceBook.PartNumber AS DetailPartNumber,
    InvoiceDetailPriceBook.UnitOfMeasure AS DetailUnitOfMeasure,
    InvoiceDetailPriceBook.Features AS DetailFeatures,
    tblSysDisclaimerSettings.ContractInvoiceDisclaimer,
    tblInvoices.ProviderTax,
    tblServiceOrders.BriefDescription AS SOBriefDescription,
    tblInvoices.GSTaxComputedBeforeTradeIn,
    tblInvoices.TaxComputedBeforeTradeIn,
    tblInvoices.ProviderTaxRate,
    tblInvoices.FreightTaxable,
    tblInvoices.GSTIsTaxable,
    tblInvoices.ProjectKeyID,
    InvoicesReps.RepName,
    tblAccounts.AccountNumber AS Expr1,
    tblAccounts.AccountID,
    tblInvoices.Terms,
    tblInvoices.Reference,
    tblInvoices.ARCustomerNumber,
    tblInvoices.PONumber,
    tblInvoices.ShipVia,
    tblServiceOrders.DateRequested,
    tblServiceOrders.DateOpened,
    tblServiceOrders.SONumber AS ServiceOrderSONumber,
    tblSysReportSettings.InvoiceCommentsAtEnd,
    tblInvoices.SourceDocument,
    tblTaxCodes.HasTieredDistrict,
    tblExchange.ExchangeKeyID,
    tblCustomerInventory.ItemID AS ExchangeItemID,
    tblCustomerInventory.ItemDescription AS ExchangeItemDescription,
    tblCustomerInventory.SerialNumber AS ExchangeSerialNumber,
    tblSOPartsUsed.Memo AS SOPartsNotes,
    tblInvoiceDetail.Taxable AS DetailIsTaxable,
    tblInvoiceAssemblyDetail.Taxable AS AssemblyIsTaxable,
    tblInvoices.IsFinalProgressiveInvoice,
    tblInvoiceDetail.IsProgressiveInvoiceItem,
    tblInvoices.IsProgressiveInvoice,
    tblInvoices.TotalPriceCredited,
    tblInvoices.TotalTaxCredited,
    tblInvoices.TotalGSTaxCredited,
    tblInvoices.TotalProviderTaxCredited,
    tblInvoices.TotalFreightCredited,
    tblInvoices.DiscountAllowed,
    tblInvoices.AmountPaid,
    (
        SELECT MAX(SOItemsServicedKeyID) AS Expr1
        FROM tblSOItemsServiced
        WHERE (SONumber = tblServiceOrders.SONumber)
        ) AS SOItemsServicedKeyID,
    tblInvoiceDetail.CommentOnly,
    ServiceOrderContacts.ContactName AS SOContactName,
    tblServiceOrders.ContactPhone AS SOContactPhone,
    tblServiceOrders.ContactPhoneLocation AS SOContactPhoneLocation,
    (
        SELECT TOP (1) FormattedPhoneNumber
        FROM tblPhoneNumbers
        WHERE (ContactNumber = 0)
            AND (PrimaryIndicator = 1)
            AND (COALESCE(PhoneLocation, '') <> 'Fax')
            AND (AccountNumber = tblAccounts.AccountNumber)
        ) AS AccountPhone,
    (
        SELECT TOP (1) PhoneLocation
        FROM tblPhoneNumbers AS tblPhoneNumbers_1
        WHERE (ContactNumber = 0)
            AND (PrimaryIndicator = 1)
            AND (COALESCE(PhoneLocation, '') <> 'Fax')
            AND (AccountNumber = tblAccounts.AccountNumber)
        ) AS AccountPhoneLocation,
    COALESCE(tvwr_TotalAmountDuePerAccount.AmountDue, 0.00) AS AmountDue,
    COALESCE(tvwr_TotalAmountDuePerAccount.Unappliedpayments, 0.00) AS Unappliedpayments,
    tblTaxCodes.IsHarmonizedTaxCode,
    tblInvoices.GSTax + tblInvoices.Tax AS HSTax
FROM tblPriceBook AS InvoiceAssemblyPriceBook
RIGHT JOIN tblPriceBook AS InvoiceDetailPriceBook
RIGHT JOIN tblInvoiceAssemblyDetail
RIGHT JOIN tblCustomerInventory
FULL JOIN tblSOPartsUsed
INNER JOIN tblExchange
    ON tblSOPartsUsed.SOPartsUsedKeyID = tblExchange.FKSOPartsUsed
        ON tblCustomerInventory.CustomerInventoryKeyID = tblExchange.FKCustomerInventory RIGHT JOIN tblInvoiceDetail
        ON tblSOPartsUsed.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
            ON tblInvoiceAssemblyDetail.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
                ON InvoiceDetailPriceBook.ItemID = tblInvoiceDetail.ItemID
                    ON InvoiceAssemblyPriceBook.ItemID = tblInvoiceAssemblyDetail.ItemID LEFT JOIN tblPriceLevels
                    ON tblInvoiceDetail.PriceLevel = tblPriceLevels.PriceLevelsKeyID RIGHT JOIN tvwr_TotalAmountDuePerAccount INNER JOIN tblAccounts
                ON tvwr_TotalAmountDuePerAccount.AccountNumber = tblAccounts.AccountNumber RIGHT JOIN tblReps AS VoidedByReps RIGHT JOIN tblInvoices AS tblInvoices LEFT JOIN tblTaxCodes
        ON tblInvoices.SalesTaxCode = tblTaxCodes.SalesTaxCode LEFT JOIN tblReps AS InvoicesReps
        ON tblInvoices.SalesRep = InvoicesReps.RepNumber
            ON VoidedByReps.RepNumber = tblInvoices.StatusBy LEFT JOIN tblServiceOrders LEFT JOIN tblContacts AS ServiceOrderContacts
        ON tblServiceOrders.ContactNumber = ServiceOrderContacts.ContactNumber
            ON tblInvoices.SONumber = tblServiceOrders.SONumber
                ON tblAccounts.AccountNumber = tblInvoices.AccountNumber
                    ON tblInvoiceDetail.InvoiceNumber = tblInvoices.InvoiceNumber LEFT JOIN tblContacts AS tblContacts
                    ON tblAccounts.PrimaryContactNumber = tblContacts.ContactNumber CROSS JOIN tblSysPBSettings CROSS JOIN tblSysCompanySettings CROSS JOIN tblSysReportSettings CROSS JOIN tblSysDisclaimerSettings
WHERE (tblInvoices.MSPAgreementNumber = 0)

UNION ALL

SELECT InvoiceAssemblyPriceBook.Features AS AssemblyFeatures,
    tblInvoiceAssemblyDetail.EachQuantity AS AssemblyEachQuantity,
    tblInvoiceAssemblyDetail.FKInvoiceDetail AS AssemblyFKInvoiceDetail,
    tblInvoiceAssemblyDetail.InvoiceAssemblyDetailKeyID,
    tblInvoiceAssemblyDetail.ItemID AS AssemblyItemID,
    tblInvoiceAssemblyDetail.ItemDescription AS AssemblyItemDescription,
    tblInvoiceAssemblyDetail.PrintOnInvoice AS AssemblyPrintOnInvoice,
    tblInvoiceAssemblyDetail.Quantity AS AssemblyQuantity,
    tblInvoiceAssemblyDetail.SellingPrice AS AssemblySellingPrice,
    tblInvoiceAssemblyDetail.TotalSellingPrice AS AssemblyTotalSellingPrice,
    tblInvoiceAssemblyDetail.Type AS AssemblyType,
    tblInvoiceAssemblyDetail.UnitOfMeasure AS AssemblyUnitOfMeasure,
    tblInvoiceDetail.AssemblyType AS DetailAssemblyType,
    tblInvoiceDetail.InvoiceDetailKeyID,
    tblInvoiceDetail.ItemDescription AS DetailItemDescription,
    tblInvoiceDetail.ItemID AS DetailItemID,
    tblInvoiceDetail.PrintOnInvoice AS DetailPrintOnInvoice,
    tblInvoiceDetail.Quantity AS DetailQuantity,
    tblInvoiceDetail.SellingPrice AS DetailSellingPrice,
    tblInvoiceDetail.TotalSellingPrice AS DetailTotalSellingPrice,
    tblInvoiceDetail.Type AS DetailType,
    tblInvoices.AccountNumber,
    tblInvoices.Comments,
    tblInvoices.ContractNumber,
    tblInvoices.Deposit,
    tblInvoices.Freight,
    tblInvoices.GSTax,
    tblInvoices.InvoiceDate,
    tblInvoices.InvoiceNumber,
    tblInvoices.PaidDate,
    tblInvoices.QuoteNumber,
    tblInvoices.SalesTaxPercent,
    CASE 
        WHEN tblInvoiceDetail.SoNumber IS NULL
            THEN tblInvoices.SONumber
        ELSE tblInvoiceDetail.SoNumber
        END AS SONumber,
    tblInvoices.STATUS,
    tblInvoices.StatusDate,
    tblInvoices.Tax,
    tblInvoices.TotalAmountDue,
    tblInvoices.TotalComment,
    tblInvoices.TotalDollarsDiscounted,
    tblInvoices.TotalGrossSell,
    tblInvoices.TotalNetSell,
    tblInvoices.TradeIn,
    tblInvoices.WorkOrderNumber,
    tblPriceLevels.IsRepairLevel,
    tblServiceOrders.ContractNumber AS ServiceOrderContractNumber,
    tblSysCompanySettings.HideGSTaxRelatedInformation,
    tblSysCompanySettings.ItemsServicedPrintOnInvoice,
    tblSysDisclaimerSettings.SalesInvoiceDisclaimer,
    tblSysDisclaimerSettings.MSPAgreementInvoiceDisclaimer AS ServiceInvoiceDisclaimer,
    tblSysPBSettings.PrintItemorPartNum,
    VoidedByReps.RepName AS VoidedByRepName,
    tblInvoices.TotalNetInvoice,
    InvoiceDetailPriceBook.PartNumber AS DetailPartNumber,
    InvoiceDetailPriceBook.UnitOfMeasure AS DetailUnitOfMeasure,
    InvoiceDetailPriceBook.Features AS DetailFeatures,
    tblSysDisclaimerSettings.ContractInvoiceDisclaimer,
    tblInvoices.ProviderTax,
    tblServiceOrders.BriefDescription AS SOBriefDescription,
    tblInvoices.GSTaxComputedBeforeTradeIn,
    tblInvoices.TaxComputedBeforeTradeIn,
    tblInvoices.ProviderTaxRate,
    tblInvoices.FreightTaxable,
    tblInvoices.GSTIsTaxable,
    tblInvoices.ProjectKeyID,
    InvoicesReps.RepName,
    tblAccounts.AccountNumber AS Expr1,
    tblAccounts.AccountID,
    tblInvoices.Terms,
    tblInvoices.Reference,
    tblInvoices.ARCustomerNumber,
    tblInvoices.PONumber,
    tblInvoices.ShipVia,
    tblServiceOrders.DateRequested,
    tblServiceOrders.DateOpened,
    tblServiceOrders.SONumber AS ServiceOrderSONumber,
    tblSysReportSettings.InvoiceCommentsAtEnd,
    tblInvoices.SourceDocument,
    tblTaxCodes.HasTieredDistrict,
    tblExchange.ExchangeKeyID,
    tblCustomerInventory.ItemID AS ExchangeItemID,
    tblCustomerInventory.ItemDescription AS ExchangeItemDescription,
    tblCustomerInventory.SerialNumber AS ExchangeSerialNumber,
    tblSOPartsUsed.Memo AS SOPartsNotes,
    tblInvoiceDetail.Taxable AS DetailIsTaxable,
    tblInvoiceAssemblyDetail.Taxable AS AssemblyIsTaxable,
    tblInvoices.IsFinalProgressiveInvoice,
    tblInvoiceDetail.IsProgressiveInvoiceItem,
    tblInvoices.IsProgressiveInvoice,
    tblInvoices.TotalPriceCredited,
    tblInvoices.TotalTaxCredited,
    tblInvoices.TotalGSTaxCredited,
    tblInvoices.TotalProviderTaxCredited,
    tblInvoices.TotalFreightCredited,
    tblInvoices.DiscountAllowed,
    tblInvoices.AmountPaid,
    (
        SELECT MAX(SOItemsServicedKeyID) AS Expr1
        FROM tblSOItemsServiced
        WHERE (SONumber = tblServiceOrders.SONumber)
        ) AS SOItemsServicedKeyID,
    tblInvoiceDetail.CommentOnly,
    ServiceOrderContacts.ContactName AS SOContactName,
    tblServiceOrders.ContactPhone AS SOContactPhone,
    tblServiceOrders.ContactPhoneLocation AS SOContactPhoneLocation,
    (
        SELECT TOP (1) FormattedPhoneNumber
        FROM tblPhoneNumbers
        WHERE (ContactNumber = 0)
            AND (PrimaryIndicator = 1)
            AND (COALESCE(PhoneLocation, '') <> 'Fax')
            AND (AccountNumber = tblAccounts.AccountNumber)
        ) AS AccountPhone,
    (
        SELECT TOP (1) PhoneLocation
        FROM tblPhoneNumbers AS tblPhoneNumbers_1
        WHERE (ContactNumber = 0)
            AND (PrimaryIndicator = 1)
            AND (COALESCE(PhoneLocation, '') <> 'Fax')
            AND (AccountNumber = tblAccounts.AccountNumber)
        ) AS AccountPhoneLocation,
    COALESCE(tvwr_TotalAmountDuePerAccount.AmountDue, 0.00) AS AmountDue,
    COALESCE(tvwr_TotalAmountDuePerAccount.Unappliedpayments, 0.00) AS Unappliedpayments,
    COALESCE(tblTaxCodes.IsHarmonizedTaxCode, 0) AS IsHarmonizedTaxCode,
    tblInvoices.GSTax + tblInvoices.Tax AS HSTax
FROM tblPriceBook AS InvoiceAssemblyPriceBook
RIGHT JOIN tblPriceBook AS InvoiceDetailPriceBook
RIGHT JOIN tblInvoiceAssemblyDetail
RIGHT JOIN tblCustomerInventory
FULL JOIN tblSOPartsUsed
INNER JOIN tblExchange
    ON tblSOPartsUsed.SOPartsUsedKeyID = tblExchange.FKSOPartsUsed
        ON tblCustomerInventory.CustomerInventoryKeyID = tblExchange.FKCustomerInventory RIGHT JOIN tblInvoiceDetail
        ON tblSOPartsUsed.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
            ON tblInvoiceAssemblyDetail.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
                ON InvoiceDetailPriceBook.ItemID = tblInvoiceDetail.ItemID
                    ON InvoiceAssemblyPriceBook.ItemID = tblInvoiceAssemblyDetail.ItemID LEFT JOIN tblPriceLevels
                    ON tblInvoiceDetail.PriceLevel = tblPriceLevels.PriceLevelsKeyID RIGHT JOIN tvwr_TotalAmountDuePerAccount INNER JOIN tblAccounts
                ON tvwr_TotalAmountDuePerAccount.AccountNumber = tblAccounts.AccountNumber RIGHT JOIN tblReps AS VoidedByReps RIGHT JOIN tblInvoices AS tblInvoices LEFT JOIN tblTaxCodes
        ON tblInvoices.SalesTaxCode = tblTaxCodes.SalesTaxCode LEFT JOIN tblReps AS InvoicesReps
        ON tblInvoices.SalesRep = InvoicesReps.RepNumber
            ON VoidedByReps.RepNumber = tblInvoices.StatusBy LEFT JOIN tblServiceOrders LEFT JOIN tblContacts AS ServiceOrderContacts
        ON tblServiceOrders.ContactNumber = ServiceOrderContacts.ContactNumber
            ON tblInvoices.SONumber = tblServiceOrders.SONumber
                ON tblAccounts.AccountNumber = tblInvoices.AccountNumber
                    ON tblInvoiceDetail.InvoiceNumber = tblInvoices.InvoiceNumber LEFT JOIN tblContacts AS tblContacts
                    ON tblAccounts.PrimaryContactNumber = tblContacts.ContactNumber CROSS JOIN tblSysPBSettings CROSS JOIN tblSysCompanySettings CROSS JOIN tblSysReportSettings CROSS JOIN tblSysDisclaimerSettings
WHERE (tblInvoices.MSPAgreementNumber <> 0)
4

1 に答える 1

0

ビューの各半分を新しいビューにコピーし、手動で GUI から tblSOPartsUsed.memo をチェックし、2 つを一緒にコピーして、ビューをうまく機能させました。

于 2012-09-17T01:47:55.947 に答える