2016-08-18 86 views
-1

我有兩個表,我想讓它的一個子查詢,像這樣:子查詢提供了空結果

SELECT VPL.[Location Code], sum(VPL.Amount) as totaal, V.[Freight-free Limit] 
FROM [Verploegen POC$Purch_ Inv_ Line] VPL 
JOIN [Verploegen POC$Vendor] V 
ON VPL.No_ = V.No_ 
--WHERE [Buy-from Vendor No_] = '3929' -- is empty??' --'3932' --'3929' --'3923' --'3904' --'3885' --'3820' --'3894' 
WHERE VPL.[Buy-from Vendor No_] = '3929' AND VPL.Type = 2 AND [Posting Date] BETWEEN '2016-01-01' AND '2016-12-31' 
GROUP BY VPL.[Location Code], V.[Freight-free Limit] --, VPL.[Direct Unit Cost] 

但是這給零reuslt。但如果我這樣做:

SELECT V.[Freight-free Limit], PL.[Location Code], sum(Amount) as totaal --SUM([Unit Cost]) 
FROM [Verploegen POC$Vendor] V 
FULL JOIN [Verploegen POC$Purch_ Inv_ Line] PL 
ON V.No_= PL.No_ 
WHERE [Buy-from Vendor No_] = '3929' AND Type = 2 AND [Posting Date] BETWEEN '2016-01-01' AND '2016-12-31' 
GROUP BY V.[Freight-free Limit], PL.[Location Code] 

它給出了這樣的結果:

NULL AM 1585.30000000000000000000 
NULL DB 1865.91000000000000000000 
NULL DL 3652.43000000000000000000 
NULL RD 1599.32000000000000000000 
NULL ZM 571.54000000000000000000 

你看。如果客戶訂購了一些金額,則客戶不需要支付運費。這是propertie:免運費限制]

例如這樣的:

SELECT [Freight-free Limit] 
FROM [Verploegen POC$Vendor] 
WHERE No_ = '3929' 

給出的結果是: 350.00000000000000000000

但我不明白的子查詢工作。

謝謝。

這是表:Purch_inv_line:

USE [VERPLOEGEN-NAV2009-LIVE] 
GO 

/****** Object: Table [dbo].[Verploegen POC$Purch_ Inv_ Line] Script Date: 08/18/2016 23:42:05 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[Verploegen POC$Purch_ Inv_ Line](
    [timestamp] [timestamp] NOT NULL, 
    [Document No_] [varchar](20) NOT NULL, 
    [Line No_] [int] NOT NULL, 
    [Buy-from Vendor No_] [varchar](20) NOT NULL, 
    [Type] [int] NOT NULL, 
    [No_] [varchar](20) NOT NULL, 
    [Location Code] [varchar](10) NOT NULL, 
    [Posting Group] [varchar](10) NOT NULL, 
    [Expected Receipt Date] [datetime] NOT NULL, 
    [Description] [varchar](50) NOT NULL, 
    [Description 2] [varchar](50) NOT NULL, 
    [Unit of Measure] [varchar](10) NOT NULL, 
    [Quantity] [decimal](38, 20) NOT NULL, 
    [Direct Unit Cost] [decimal](38, 20) NOT NULL, 
    [Unit Cost (LCY)] [decimal](38, 20) NOT NULL, 
    [VAT %] [decimal](38, 20) NOT NULL, 
    [Line Discount %] [decimal](38, 20) NOT NULL, 
    [Line Discount Amount] [decimal](38, 20) NOT NULL, 
    [Amount] [decimal](38, 20) NOT NULL, 
    [Amount Including VAT] [decimal](38, 20) NOT NULL, 
    [Unit Price (LCY)] [decimal](38, 20) NOT NULL, 
    [Allow Invoice Disc_] [tinyint] NOT NULL, 
    [Gross Weight] [decimal](38, 20) NOT NULL, 
    [Net Weight] [decimal](38, 20) NOT NULL, 
    [Units per Parcel] [decimal](38, 20) NOT NULL, 
    [Unit Volume] [decimal](38, 20) NOT NULL, 
    [Appl_-to Item Entry] [int] NOT NULL, 
    [Shortcut Dimension 1 Code] [varchar](20) NOT NULL, 
    [Shortcut Dimension 2 Code] [varchar](20) NOT NULL, 
    [Job No_] [varchar](20) NOT NULL, 
    [Indirect Cost %] [decimal](38, 20) NOT NULL, 
    [Pay-to Vendor No_] [varchar](20) NOT NULL, 
    [Inv_ Discount Amount] [decimal](38, 20) NOT NULL, 
    [Vendor Item No_] [varchar](20) NOT NULL, 
    [Gen_ Bus_ Posting Group] [varchar](10) NOT NULL, 
    [Gen_ Prod_ Posting Group] [varchar](10) NOT NULL, 
    [VAT Calculation Type] [int] NOT NULL, 
    [Transaction Type] [varchar](10) NOT NULL, 
    [Transport Method] [varchar](10) NOT NULL, 
    [Attached to Line No_] [int] NOT NULL, 
    [Entry Point] [varchar](10) NOT NULL, 
    [Area] [varchar](10) NOT NULL, 
    [Transaction Specification] [varchar](10) NOT NULL, 
    [Tax Area Code] [varchar](20) NOT NULL, 
    [Tax Liable] [tinyint] NOT NULL, 
    [Tax Group Code] [varchar](10) NOT NULL, 
    [Use Tax] [tinyint] NOT NULL, 
    [VAT Bus_ Posting Group] [varchar](10) NOT NULL, 
    [VAT Prod_ Posting Group] [varchar](10) NOT NULL, 
    [Blanket Order No_] [varchar](20) NOT NULL, 
    [Blanket Order Line No_] [int] NOT NULL, 
    [VAT Base Amount] [decimal](38, 20) NOT NULL, 
    [Unit Cost] [decimal](38, 20) NOT NULL, 
    [System-Created Entry] [tinyint] NOT NULL, 
    [Line Amount] [decimal](38, 20) NOT NULL, 
    [VAT Difference] [decimal](38, 20) NOT NULL, 
    [VAT Identifier] [varchar](10) NOT NULL, 
    [IC Partner Ref_ Type] [int] NOT NULL, 
    [IC Partner Reference] [varchar](20) NOT NULL, 
    [Prepayment Line] [tinyint] NOT NULL, 
    [IC Partner Code] [varchar](20) NOT NULL, 
    [Posting Date] [datetime] NOT NULL, 
    [Job Task No_] [varchar](20) NOT NULL, 
    [Job Line Type] [int] NOT NULL, 
    [Job Unit Price] [decimal](38, 20) NOT NULL, 
    [Job Total Price] [decimal](38, 20) NOT NULL, 
    [Job Line Amount] [decimal](38, 20) NOT NULL, 
    [Job Line Discount Amount] [decimal](38, 20) NOT NULL, 
    [Job Line Discount %] [decimal](38, 20) NOT NULL, 
    [Job Unit Price (LCY)] [decimal](38, 20) NOT NULL, 
    [Job Total Price (LCY)] [decimal](38, 20) NOT NULL, 
    [Job Line Amount (LCY)] [decimal](38, 20) NOT NULL, 
    [Job Line Disc_ Amount (LCY)] [decimal](38, 20) NOT NULL, 
    [Job Currency Factor] [decimal](38, 20) NOT NULL, 
    [Job Currency Code] [varchar](20) NOT NULL, 
    [Prod_ Order No_] [varchar](20) NOT NULL, 
    [Variant Code] [varchar](10) NOT NULL, 
    [Bin Code] [varchar](20) NOT NULL, 
    [Qty_ per Unit of Measure] [decimal](38, 20) NOT NULL, 
    [Unit of Measure Code] [varchar](10) NOT NULL, 
    [Quantity (Base)] [decimal](38, 20) NOT NULL, 
    [FA Posting Date] [datetime] NOT NULL, 
    [FA Posting Type] [int] NOT NULL, 
    [Depreciation Book Code] [varchar](10) NOT NULL, 
    [Salvage Value] [decimal](38, 20) NOT NULL, 
    [Depr_ until FA Posting Date] [tinyint] NOT NULL, 
    [Depr_ Acquisition Cost] [tinyint] NOT NULL, 
    [Maintenance Code] [varchar](10) NOT NULL, 
    [Insurance No_] [varchar](20) NOT NULL, 
    [Budgeted FA No_] [varchar](20) NOT NULL, 
    [Duplicate in Depreciation Book] [varchar](10) NOT NULL, 
    [Use Duplication List] [tinyint] NOT NULL, 
    [Responsibility Center] [varchar](10) NOT NULL, 
    [Cross-Reference No_] [varchar](20) NOT NULL, 
    [Unit of Measure (Cross Ref_)] [varchar](10) NOT NULL, 
    [Cross-Reference Type] [int] NOT NULL, 
    [Cross-Reference Type No_] [varchar](30) NOT NULL, 
    [Item Category Code] [varchar](10) NOT NULL, 
    [Nonstock] [tinyint] NOT NULL, 
    [Purchasing Code] [varchar](10) NOT NULL, 
    [Product Group Code] [varchar](10) NOT NULL, 
    [Return Reason Code] [varchar](10) NOT NULL, 
    [Allow Condition Disc_] [tinyint] NOT NULL, 
    [Allow Prod_ Gr_ Cond_ Disc_] [tinyint] NOT NULL, 
    [Condition Discount %] [decimal](38, 20) NOT NULL, 
    [Condition Discount Amount] [decimal](38, 20) NOT NULL, 
    [Prod_ Gr_ Cond_ Disc_ %] [decimal](38, 20) NOT NULL, 
    [Prod_ Gr_ Cond_ Disc_ Amount] [decimal](38, 20) NOT NULL, 
    [Vend__Item Discount %] [decimal](38, 20) NOT NULL, 
    [Vend__Item Disc_ Amount] [decimal](38, 20) NOT NULL, 
    [Order Type Code] [varchar](10) NOT NULL, 
    [Price Factor] [decimal](38, 20) NOT NULL, 
    [Unit Cost (Unit of Measure)] [decimal](38, 20) NOT NULL, 
    [Unit of Meas_ Code (Unit Cost)] [varchar](10) NOT NULL, 
    [Bonus Code] [varchar](10) NOT NULL, 
    [Item Bonus Group] [varchar](10) NOT NULL, 
    [Allow Bonus (Direct Unit Cost)] [tinyint] NOT NULL, 
    [Allow Bonus] [tinyint] NOT NULL, 
    [Shipping No_] [varchar](20) NOT NULL, 
    [Cost Component] [varchar](10) NOT NULL, 
    [Cost Allocation] [tinyint] NOT NULL, 
    [Min_ Order Amount (LC)] [decimal](38, 20) NOT NULL, 
    [Min_ Order Quantity (Base)] [decimal](38, 20) NOT NULL, 
    [Unit Volume (Total)] [decimal](38, 20) NOT NULL, 
    [Line Amount (LC)] [decimal](38, 20) NOT NULL, 
    [Unit of Measure (UOM)] [varchar](10) NOT NULL, 
    [Quantity (UOM)] [decimal](38, 20) NOT NULL, 
    [Original Quantity] [decimal](38, 20) NOT NULL, 
    [Cancelled] [tinyint] NOT NULL, 
    [Order No_] [varchar](20) NOT NULL, 
    [Order Line No_] [int] NOT NULL, 
    [Source Line No_] [int] NOT NULL, 
    [Waste Disposal Fee] [tinyint] NOT NULL, 
    [Price Unit of Measure Code] [varchar](10) NOT NULL, 
    [Price Unit of Measure] [varchar](10) NOT NULL, 
    [Qty_ per Price UOM] [decimal](38, 20) NOT NULL, 
    [Direct Unit Cost (Price)] [decimal](38, 20) NOT NULL, 
    [Routing No_] [varchar](20) NOT NULL, 
    [Operation No_] [varchar](10) NOT NULL, 
    [Work Center No_] [varchar](20) NOT NULL, 
    [Prod_ Order Line No_] [int] NOT NULL, 
    [Overhead Rate] [decimal](38, 20) NOT NULL, 
    [Routing Reference No_] [int] NOT NULL, 
CONSTRAINT [Verploegen POC$Purch_ Inv_ Line$0] PRIMARY KEY CLUSTERED 
(
    [Document No_] ASC, 
    [Line No_] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Data Filegroup 1] 
) ON [Data Filegroup 1] 

GO 

SET ANSI_PADDING OFF 
GO 

,這是賣方表:

USE [VERPLOEGEN-NAV2009-LIVE] 
GO 

/****** Object: Table [dbo].[Verploegen POC$Vendor] Script Date: 08/18/2016 23:43:53 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 

SET ANSI_PADDING ON 
GO 

CREATE TABLE [dbo].[Verploegen POC$Vendor](
    [timestamp] [timestamp] NOT NULL, 
    [No_] [varchar](20) NOT NULL, 
    [Name] [varchar](50) NOT NULL, 
    [Search Name] [varchar](50) NOT NULL, 
    [Name 2] [varchar](50) NOT NULL, 
    [Address] [varchar](50) NOT NULL, 
    [Address 2] [varchar](50) NOT NULL, 
    [City] [varchar](30) NOT NULL, 
    [Contact] [varchar](50) NOT NULL, 
    [Phone No_] [varchar](30) NOT NULL, 
    [Telex No_] [varchar](20) NOT NULL, 
    [Our Account No_] [varchar](20) NOT NULL, 
    [Territory Code] [varchar](10) NOT NULL, 
    [Global Dimension 1 Code] [varchar](20) NOT NULL, 
    [Global Dimension 2 Code] [varchar](20) NOT NULL, 
    [Budgeted Amount] [decimal](38, 20) NOT NULL, 
    [Vendor Posting Group] [varchar](10) NOT NULL, 
    [Currency Code] [varchar](10) NOT NULL, 
    [Language Code] [varchar](10) NOT NULL, 
    [Statistics Group] [int] NOT NULL, 
    [Payment Terms Code] [varchar](10) NOT NULL, 
    [Fin_ Charge Terms Code] [varchar](10) NOT NULL, 
    [Purchaser Code] [varchar](10) NOT NULL, 
    [Shipment Method Code] [varchar](10) NOT NULL, 
    [Shipping Agent Code] [varchar](10) NOT NULL, 
    [Invoice Disc_ Code] [varchar](20) NOT NULL, 
    [Country_Region Code] [varchar](10) NOT NULL, 
    [Blocked] [int] NOT NULL, 
    [Pay-to Vendor No_] [varchar](20) NOT NULL, 
    [Priority] [int] NOT NULL, 
    [Payment Method Code] [varchar](10) NOT NULL, 
    [Last Date Modified] [datetime] NOT NULL, 
    [Application Method] [int] NOT NULL, 
    [Prices Including VAT] [tinyint] NOT NULL, 
    [Fax No_] [varchar](30) NOT NULL, 
    [Telex Answer Back] [varchar](20) NOT NULL, 
    [VAT Registration No_] [varchar](20) NOT NULL, 
    [Gen_ Bus_ Posting Group] [varchar](10) NOT NULL, 
    [Picture] [image] NULL, 
    [Post Code] [varchar](20) NOT NULL, 
    [County] [varchar](30) NOT NULL, 
    [E-Mail] [varchar](80) NOT NULL, 
    [Home Page] [varchar](80) NOT NULL, 
    [No_ Series] [varchar](10) NOT NULL, 
    [Tax Area Code] [varchar](20) NOT NULL, 
    [Tax Liable] [tinyint] NOT NULL, 
    [VAT Bus_ Posting Group] [varchar](10) NOT NULL, 
    [Block Payment Tolerance] [tinyint] NOT NULL, 
    [IC Partner Code] [varchar](20) NOT NULL, 
    [Prepayment %] [decimal](38, 20) NOT NULL, 
    [Primary Contact No_] [varchar](20) NOT NULL, 
    [Responsibility Center] [varchar](10) NOT NULL, 
    [Location Code] [varchar](10) NOT NULL, 
    [Lead Time Calculation] [varchar](32) NOT NULL, 
    [Base Calendar Code] [varchar](10) NOT NULL, 
    [Chamber of Commerce] [varchar](11) NOT NULL, 
    [Prices on order] [tinyint] NOT NULL, 
    [Tradium Account] [int] NOT NULL, 
    [EAN adrescode] [varchar](13) NOT NULL, 
    [Manufacturer] [tinyint] NOT NULL, 
    [Transaction Mode Code] [varchar](20) NOT NULL, 
    [Bank Account Code] [varchar](10) NOT NULL, 
    [Freight-free Limit] [decimal](38, 20) NOT NULL, 
    [Minimum Order Amount] [decimal](38, 20) NOT NULL, 
    [Find Best Price] [tinyint] NOT NULL, 
    [Discount Calculation] [int] NOT NULL, 
    [Print Conditions] [tinyint] NOT NULL, 
    [No Prices on Order] [tinyint] NOT NULL, 
    [Vendor Bonus Group] [varchar](10) NOT NULL, 
    [Cost Allocation] [tinyint] NOT NULL, 
    [Minimum Order Volume] [decimal](38, 20) NOT NULL, 
    [Apply Waste Disposal Fee] [tinyint] NOT NULL, 
    [Purchase budget] [decimal](38, 20) NOT NULL, 
    [Credit Limit] [decimal](38, 20) NOT NULL, 
    [Performance Score Mandatory] [tinyint] NOT NULL, 
    [Melding] [varchar](30) NOT NULL, 
    [Partner Type] [int] NOT NULL, 
    [2BA] [tinyint] NOT NULL, 
    [Traffic Light Image Solvency] [image] NULL, 
CONSTRAINT [Verploegen POC$Vendor$0] PRIMARY KEY CLUSTERED 
(
    [No_] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [Data Filegroup 1] 
) ON [Data Filegroup 1] TEXTIMAGE_ON [Data Filegroup 1] 

GO 

SET ANSI_PADDING OFF 
GO 

我有這樣的:

SELECT VPL.[Location Code], sum(VPL.Amount) as totaal, VPL.[Buy-from Vendor No_] --, V.[Freight-free Limit] 
FROM [Verploegen POC$Purch_ Inv_ Line] VPL 
WHERE  VPL.[Buy-from Vendor No_] = '3929' AND VPL.Type = 2 AND [Posting Date] BETWEEN '2016-01-01' AND '2016-12-31' 
GROUP by VPL.[Location Code], VPL.[Buy-from Vendor No_]--, VPL.[Vendor Item No_] 
ORDER BY VPL.[Location Code] 

隨着結果是這樣的:

AM 1585.30000000000000000000 3929 
DB 1865.91000000000000000000 3929 
DL 3652.43000000000000000000 3929 
RD 1599.32000000000000000000 3929 
ZM 571.54000000000000000000 3929 

但如何實現propertie: 免運費限制

+0

第一個查詢默認爲'INNER JOIN'表示如果沒有匹配,則不會返回任何內容。你可以根據你的表的順序在'FROM'子句之後使用'LEFT JOIN'或'RIGHT JOIN'。如果您發佈表結構,示例數據等,可能會有幫助。 – BJones

+0

嗨,謝謝您的評論。我添加了表 – SavantCode

+0

我不確定哪部分是「子查詢」。 – shawnt00

回答

0

這是做的伎倆:

use [VERPLOEGEN-NAV2009-LIVE] 
SELECT VPL.[Location Code], 
     SUM(VPL.Amount) AS Total, 
     V.[Freight-free Limit] 
FROM [Verploegen POC$Purch_ Inv_ Line] VPL 
JOIN [Verploegen POC$Vendor] V 
    ON VPL.[Buy-from Vendor No_] = V.No_ 
--WHERE [Buy-from Vendor No_] = '3929' -- is empty??' --'3932' --'3929' --'3923' --'3904' --'3885' --'3820' --'3894' 
WHERE VPL.[Buy-from Vendor No_] = '3929' 
     AND VPL.Type = 2 AND ([Posting Date] BETWEEN '2016-01-01' AND '2016-12-31') 
GROUP BY VPL.[Location Code], V.[Freight-free Limit] --, VPL.[Direct Unit Cost] 

我只是用錯了propertie