iT邦幫忙

0

SQL MAX如何帶出其他欄位

  • 分享至 

  • xImage

(http://)各位大大:
不好意思,因為當初沒有電腦所以用了手機一個個打字隨便舉例,回家才發現原來電腦版有插圖片的功能,那我再說一次我的問題:因為我的工作是會透過SQL資料庫中抓取我要的資訊到EXCEL,但每次都需要耗費很多時間再刪除重複的筆數,偶然得知MAX函數可以抓取最大值,但很奇怪的是MAX篩選過後的確得到時間最新資訊,但是其他欄位卻無法只抓到同一個欄位的資訊,像是BAY因為有數字顯示就出現兩筆資訊,但我如果將改成MAX(BAY)好像又不對,能否麻煩各位~太感謝
https://ithelp.ithome.com.tw/upload/images/20210524/201377618PHtCIKuKr.png

“001”and”002” 換成 “001”or”002” 試試
bay 分別有三筆 資料? 001 跟002 這兩筆時間最新資料?
我怎麼開始有東西不分,南北迷向的感覺出現了?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
rogeryao
iT邦超人 7 級 ‧ 2021-05-24 16:47:48
最佳解答
CREATE TABLE TestResults (
MeterSN Varchar(20) NULL ,     
LotNumber Varchar(20) NULL,      
DateTime_ID DateTime NULL,      
BAY Varchar(20) NULL);     

INSERT INTO TestResults (MeterSN,LotNumber,DateTime_ID,BAY)
VALUES 
('h01934245','P0401','2021-04-26 02:27:42.227','3'),
('h01934245','P0401','2021-04-26 03:47:13.003','6'),
('h01934245','P0402','2021-03-20 04:27:42.227','7'),
('h01934246','X0401','2021-03-10 05:27:42.227','1'),
('h01934246','X0401','2021-03-12 06:27:42.227','2');
-- 方法一
SELECT MeterSN,LotNumber,DateTime_ID,BAY
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY MeterSN,LotNumber ORDER BY DateTime_ID DESC) AS ROWNUM,*
FROM TestResults) AS TempM
WHERE ROWNUM = 1
ORDER BY MeterSN,LotNumber 
-- 方法二
SELECT TestResults.MeterSN,TestResults.LotNumber,TestResults.DateTime_ID,TestResults.BAY
FROM TestResults
INNER JOIN (
SELECT MeterSN,LotNumber,MAX(DateTime_ID) AS DateTime_ID
FROM TestResults
GROUP BY MeterSN,LotNumber) AS Temp ON Temp.MeterSN=TestResults.MeterSN 
AND Temp.LotNumber=TestResults.LotNumber
AND Temp.DateTime_ID=TestResults.DateTime_ID
ORDER BY TestResults.MeterSN,TestResults.LotNumber

Demo

我要發表回答

立即登入回答