2013-07-05 57 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