1
ID|message| UpdateTime| TicketID| StaffID

10008;"Yes, it is!";"2012-04-15 16:15:00";1008;660
10013;"Thanks for swift reply!";"2012-04-15 17:15:00";1008;660

これら2つのクエリをいつ書くか教えてもらえますか:

Select MAX(UpdateTime) from TicketUpdate where ticketUpdate.id = 10008;    
Select MIN(UpdateTime) from TicketUpdate where ticketUpdate.id = 10008;

私のデータベースでも、2つの異なる時間があれば出力は同じです。ここで何が問題なのか教えてもらえますか?

4

1 に答える 1

1

IDは、このテーブルの一意の識別子のようです。TicketID代わりに、チケットごとの最大値と最小値を見つけるために使用したいようです。

たとえば、次のように検索しますTicketID = 1008

SELECT MAX(UpdateTime) FROM TicketUpdate WHERE TicketUpdate.TicketID = 1008;    
SELECT MIN(UpdateTime) FROM TicketUpdate WHERE TicketUpdate.TicketID = 1008;

または、1 つのクエリで:

SELECT 
  MAX(UpdateTime) AS newest,
  MIN(UpdateTime) AS oldest
FROM TicketUpdate
WHERE TicketID = 1008;

個々の TicketID ごとに最新のものと最も古いものを取得するには、a を使用して句GROUP BYを省略します。WHERE

SELECT 
  TicketID,
  MAX(UpdateTime) AS newest,
  MIN(UpdateTime) AS oldest,
FROM TicketUpdate
GROUP BY TicketID

を使用してクエリを実行すると、行を一意に識別するID値がそれぞれに 1 つしかないように見えるため、常に同じ行が取得されます。ID

于 2012-04-17T17:11:38.160 に答える