VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

SQL - 出現最靠近 20121231日期資料

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
jslin



註冊時間: 2008-02-25
文章: 7


第 1 樓

發表發表於: 星期二 三月 26, 2013 9:39 am    文章主題: SQL - 出現最靠近 20121231日期資料 引言回覆

結果希望是只顯示每一個品號在20130101000之前所產生的最後一筆資料(也就是小於20130101日期資料)
類如:品號 201002-02-12-055401 品名 兵果_承架
出現有二筆(分別是20121120001跟20120316013), 但是希望結果是出現最靠近 20121231日期資料, 也就是單號為 20121120001資料

以下是我以 MAX(LA007) AS 單號 來顯示, 但是還是出現品號所有資料?
代碼:
SELECT LA001 AS 品號, MB002 AS 品名, MB003 AS 規格, MB064 AS 庫存數量, MB065 AS 庫存金額,
LA006 AS 單別, MAX(LA007) AS 單號, LA012 單位成本, LA011 AS 異動數量, LA013 AS 金額
FROM SKTEST..INVLA S1 INNER JOIN SKTEST..INVMB S2
ON S1.LA001 = S2.MB001
WHERE LA001 LIKE '2%' AND LA006 LIKE '34%'
AND LA007 < '2013010100'
GROUP BY LA001, LA006, LA007, LA012, LA011, LA013,
MB002, MB003, MB064, MB065
ORDER BY LA001, LA007 DESC

以下是我目前語法後結果
品號    品名   規格    庫存數量 庫存金額 單別    單號    單位成本    異動數量   金額
201002-02-12-055401 兵果_承�[   ABS 原色    0    0    3400 20121120001   2.857300 2200.000   6286.000000
201002-02-12-055401 兵果_承�[   ABS 原色    0    0 3400 20120316013   2.857600 330.000   943.000000
201002-03-12-055401 兵果_底座   ABS 原色    0    0    3400 20121120001   3.428600 2200.000   7543.000000
201002-03-12-055401 兵果_底座   ABS 原色 0    0    3400 20120316013   3.427300 330.000   1131.000000
201002-04-14-044411 兵果_配重塊   AS 顏色不拘 97 364    3400 20121125001   3.752600 1524.000   5719.000000
201002-04-14-044411 兵果_配重塊   AS 顏色不拘 97    364    3400 20121124002   3.752100 476.000   1786.000000
201002-04-14-044411 兵果_配重塊   AS 顏色不拘 97    364    3400 20120327003   3.753300 300.000   1126.000000

以下是希望顯示結果(出�{最靠近 20121231日期資料)
品號    品名   規格    庫存數量 庫存金額 單別    單號    單位成本    異動數量   金額
201002-02-12-055401 兵果_承�[   ABS 原色    0    0    3400 20121120001   2.857300 2200.000   6286.000000
201002-03-12-055401 兵果_底座   ABS 原色    0    0    3400 20121120001   3.428600 2200.000   7543.000000
201002-04-14-044411 兵果_配重塊   AS 顏色不拘 97 364    3400 20121125001   3.752600 1524.000   5719.000000
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4211
來自: Taipei,Taiwan

第 2 樓

發表發表於: 星期二 三月 26, 2013 10:39 am    文章主題: 引言回覆

把日期換算成數字,
差額取絕對值.


XD

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
jslin



註冊時間: 2008-02-25
文章: 7


第 3 樓

發表發表於: 星期二 三月 26, 2013 10:57 am    文章主題: 引言回覆

syntech 寫到:
把日期換算成數字,
差額取絕對值.


XD


不好意思 MAX(LA007) 已經是數字
能否更明確指點迷津 非常謝謝 ~~~
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4211
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期二 三月 26, 2013 4:30 pm    文章主題: 引言回覆

代碼:

SELECT LA001 AS 品號, MB002 AS 品名, MB003 AS 規格, MB064 AS 庫存數量, MB065 AS 庫存金額,
LA006 AS 單別, MAX(LA007) AS 單號, LA012 單位成本, LA011 AS 異動數量, LA013 AS 金額
FROM SKTEST..INVLA S1 INNER JOIN SKTEST..INVMB S2
ON S1.LA001 = S2.MB001
WHERE LA001 LIKE '2%' AND LA006 LIKE '34%'


AND LA007 in ( SELECT TOP 1 LA007 FROM SKTEST..INVLA WHERE LA007 <'2013010100' ORDER BY LA007 DESC )


GROUP BY LA001, LA006, LA007, LA012, LA011, LA013,
MB002, MB003, MB064, MB065
ORDER BY LA001, LA007 DESC




應該很"接近"這樣. XD
不過....... Twisted Evil

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
yctsai



註冊時間: 2003-04-11
文章: 179


第 5 樓

發表發表於: 星期五 三月 29, 2013 9:22 am    文章主題: 引言回覆

初想 結果再group一次 或者 distinct
回頂端
檢視會員個人資料 發送私人訊息
saint



註冊時間: 2003-07-14
文章: 211


第 6 樓

發表發表於: 星期五 四月 12, 2013 2:44 pm    文章主題: 引言回覆

試試看
代碼:

SELECT * FROM (
SELECT
   LA001 AS 品號
   , MB002 AS 品名
   , MB003 AS 規格
   , MB064 AS 庫存數量
   , MB065 AS 庫存金額
   , LA006 AS 單別
   , LA007 AS 單號
   , LA012 單位成本, LA011 AS 異動數量, LA013 AS 金額
   , ROW_NUMBER() OVER(PARTITION BY LA001   , LA006   , LA007   , LA012   , LA011   , LA013
                  , MB002   , MB003   , MB064   , MB065
               ORDER BY LA001, LA007 DESC) AS SEQ      
FROM SKTEST..INVLA S1 INNER JOIN SKTEST..INVMB S2 ON S1.LA001 = S2.MB001
WHERE LA001 LIKE '2%' AND LA006 LIKE '34%'
AND LA007 < '2013010100'
) WHERE SEQ = 1
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作