在下面的sql查询当我用where条件中的某些值执行它时,它显示数据,如果我将值放在[Sp_GrnValuationReportV1] - 1,' GR140000001' GR140000009' GR140000009' ;,' 2014年10月11日'' 2014年12月25日'它显示没有数据。请帮我解决问题。
ALTER PROCEDURE [dbo].[Sp_GrnValuationReportV1] --1,'GR140000001','GR140000009','2014-10-11','2014-12-25'
-- Add the parameters for the stored procedure here
@i_LocationID int,
@i_GrnStartNo varchar,
@i_GrnEndNo varchar,
@d_StartDate DATE,
@d_EndDate DATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT DISTINCT GRN.GoodsReceivedNoteNo,GRN.LocationID,GRN.CreatedOn,PO.PurchaseOrderNo,V.VendorName,
GRN.SupplierInvoiceNo,GRN.SupplierInvoiceDate,SR.LRNO,T.TransporterName,
CASE
WHEN Count(GRND.GoodsReceivedNoteID) OVER(partition BY GRND.GoodsReceivedNoteID) > 1
THEN Isnull(( GRND.FreightCharges ), 0.00)
ELSE Isnull(( OEC.FreightCharges ), 0.00)
END FreightCharge,CASE
WHEN Count(GRND.GoodsReceivedNoteID) OVER(partition BY GRND.GoodsReceivedNoteID) > 1
THEN Isnull(( GRND.LoadingCost + GRND.UnloadingCost ), 0.00)
ELSE Isnull(( OEC.LoadingCost + OEC.UnloadingCost ), 0.00)
END LoadingandUnloadingcharges ,
P.ProductCode,P.ProductName,GRND.ReceivedQuantity,GRND.RejectedQuantity,GRND.AcceptedQuantity,
GRND.UnitPrice AS BasicRate,ISNULL( (GRND.UnitPrice*GRND.ReceivedQuantity),0.00) BasicValue,GRND.VAT,CASE
WHEN Count(GRND.GoodsReceivedNoteID) OVER(partition BY GRND.GoodsReceivedNoteID) > 1
THEN Isnull(( GRND.FreightCharges ), 0.00)
ELSE Isnull(( OEC.FreightCharges ), 0.00)
END FreightApportioned,
CASE
WHEN Count(GRND.GoodsReceivedNoteID) OVER(partition BY GRND.GoodsReceivedNoteID) > 1
THEN Isnull(( GRND.LoadingCost + GRND.UnloadingCost ), 0.00)
ELSE Isnull(( OEC.LoadingCost + OEC.UnloadingCost ), 0.00)
END LoadingandUnloadingApportioned,ISNULL((GRND.UnitPrice+OEC.FreightCharges+OEC.LoadingCost+OEC.UnloadingCost),0.00)AS TotalCost
FROM GoodsReceivedNoteDetail GRND
LEFT OUTER JOIN GoodsReceivedNote GRN ON GRN.GoodsReceivedNoteID=GRND.GoodsReceivedNoteID
LEFT OUTER JOIN PurchaseOrder PO ON PO.PurchaseOrderID=GRN.PurchaseOrderID
LEFT OUTER JOIN Vendor V ON V.VendorID=PO.VendorID
LEFT OUTER JOIN SecurityRegister SR ON SR.SecurityRegisterID=GRN.SecurityRegisterID
LEFT OUTER JOIN Transporter T ON T.TransporterID=SR.TransporterID
LEFT OUTER JOIN OtherExpenseCost OEC ON OEC.GoodsReceivedNoteID=GRN.GoodsReceivedNoteID
LEFT OUTER JOIN Product P ON P.ProductID=GRND.ProductID
--WHERE GRN.LocationID=@i_LocationID AND GRN.GoodsReceivedNoteNo>=@i_GrnStartNo AND GRN.GoodsReceivedNoteNo<=@i_GrnEndNo or GRN.CreatedOn>=@d_StartDate AND GRN.CreatedOn<=@d_EndDate
WHERE CAST( GRND.CreatedOn AS DATE)>=@d_StartDate AND GRN.LocationID=1 AND CAST( GRND.CreatedOn AS DATE) <=@d_EndDate AND GRN.GoodsReceivedNoteNo>= @i_GrnStartNo AND GRN.GoodsReceivedNoteNo <=@i_GrnEndNo
答案 0 :(得分:0)
要在大查询中查找问题,请按照此说明进行操作
*
。我的意思是将您的查询更改为select * from
我希望这有助于你
答案 1 :(得分:0)
提及varchar的大小
@i_GrnStartNo varchar(50),
@i_GrnEndNo varchar(50),