2013-07-05 58 views
0

数据的错误,我执行select语句检索在SQL Server

select 
    Orders.Oid as 'Order ID', 
    Eid as 'Employee ID', 
    Barcode, 
    PacksQty as 'Packs Quantity', 
    UnitQty as 'Units Quantity', 
    Date as 'Order Date', 
    Price as 'Total Price' 
from OrderDetails 
    inner join Orders 
     on OrderDetails.Oid = Orders.Oid 
where OrderDetails.Date ='05/07/2013' 

而且它不会检索数据并没有给我任何错误。顺便说一句,表格行中的数据在Date列中有指定的日期。

+0

有一点要检查的是,从日期转换文本正在做你期望的事情......你可能想要使用更安全的文本表示形式“yyyy-mm-dd” –

回答

0

由于该查询不扔了它意味着查询成功执行,这让下列可能性:

  1. 你在表订单明细没有数据或订单
  2. 你没有订单明细,其中OrderDetails.Date = '05/07/2013'
做到这一点,看看是否有该日期

SELECT COUNT(*) AS DateCount FROM OrderDetails WHERE Date = '05/07/2013' 

列如果返回0,你必须与d没有订单明细吃,如果它返回1个或多个执行下列操作

SELECT COUNT(*) AS OrdersWithDateCount 
FROM Orders 
    JOIN OrderDetails 
     ON Orders.Oid = OrderDetails.Oid 
WHERE OrderDetails.Date = '05/07/2013' 

如果你在上面的例子中返回零,但在下面的例子中

SELECT COUNT(*) AS OrderDetailsWithDateCount 
FROM OrderDetails 
WHERE Date = '05/07/2013' 

你有详细的记录不回零,但没有订单记录或孤儿记录。请确保您有正确的日期,请执行下列操作

SELECT DISTINCT Date 
FROM OrderDetails 
WHERE Date BETWEEN GETDATE()-90 AND GETDATE() 

如果你看到你的约会比赛可能是因为你的数据类型是日期时间,可以尝试使用

DECLARE @TargetDate DATE = '05/07/2013' 

SELECT COUNT(*) FROM OrderDetails 
WHERE OrderDetails.Date 
    BETWEEN DATEADD(day,-1,@TargetDate) 
     AND DATEADD(day,1,@TargetDate) 

如果这样做返回其他0然后你需要使用这种方法来获得正确的结果。如果它返回0,那么你肯定有与'05/07/2013'

+0

我确信我在这些表格中有数据我将拍摄一张屏幕并向您显示 –

+0

@MuhammedSalah告诉我查询的结果,我会让你知道这个代码是什么问题 – konkked

+0

结果是从2个表中检索数据,其中一个表中的日期时间是'05/07/2013',Oid是主键 –

0

日期没有订单的细节试试这个

select Orders.Oid as 'Order ID',Eid as 'Employee ID',Barcode,PacksQty as 'Packs Quantity', 
UnitQty as 'Units Quantity',Date as 'Order Date',Price as 'Total Price' from 
OrderDetails join Orders 
on OrderDetails.Oid = Orders.Oid 
Where OrderDetails.Date ='2031-07-05' 
+0

dosen't works:s –

+0

@MuhammedSalah你正在使用内部连接,所以Oid应该在两个表中都可用。请确认。 – Santosh

+0

我尝试另一种说法 SELECT * FROM订单明细,其中日期=“2013/7/5” 和同样的问题 –

0

刚刚尝试this..Use日期格式如图 其中OrderDetails.Date ='2031 Jul 05'

OrderDetails.Date ..类型是什么? 它是日期时间还是日期..? 如果其日期时间改变条件,因为这

WHERE CONVERT(CHAR(12),OrderDetails.Date,13)= '2013年7月5日'

+0

它的日期时间和代码有错误语法附近‘=’ –

+0

哎呀,我错过了关闭括号的转换函数..我刚刚纠正它现在.. – Appyks

+0

试试这个.. WHERE CONVERT(CHAR(12),OrderDetails。[Date],13)='05 Jul 2013' – Appyks