2012-09-11 35 views
2

我正在製作Crystal Reports中的自動報告,這需要我將表添加到現有的預先寫好的視圖中。該視圖包含一個聯合操作,它妨礙我正常使用該視圖。我所做的是手動添加數據(大約一半)。如何添加項目到聯合SQL視圖?

報告所需的項目是tblSOPartsUsed.Memo。我已經添加到兩個選擇查詢。在tblCustomerInventory和tblSOParts之間的連接中.Memo表僅出現在PartsUsed表中,而不出現在CustomerInventory中。

  1. 首先選擇查詢位置

       tblCustomerInventory.SerialNumber AS ExchangeSerialNumber, **tblSOPartsUsed.Memo AS SOPartsNotes**, tblInvoiceDetail.Taxable AS DetailIsTaxable, 
    
  2. 首先從查詢位置

       tblCustomerInventory FULL OUTER JOIN 
           tblSOPartsUsed INNER JOIN 
    

我所概述的第二個完全相同的方式選擇並。

有人可以擺脫一些光,我已經嘗試了一切!

完整的代碼是下面...

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) 
+0

怪物sql代碼。 –

+0

好吧,我的下巴在這個查詢的長度下降。 – Kermit

+0

看到問題...我不知道該怎麼做! – LordJubbles

回答

0

我設法視圖的每一半從GUI複製到一個新的視圖,手動剔掉tblSOPartsUsed.memo和所複製的兩個一起這使查看工作很好

相關問題