子查询提供了空结果

问题描述:

我有两个表,我想让它的一个子查询,像这样:子查询提供了空结果

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

这是做的伎俩:

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