1

我正在查询一个用于计算奖励要求的狗敏捷性场地。

有两列是标识符,一列是 RegNum,它是狗的识别号,另一列是 Class_Subset,它标识了这些分数是在哪个类别下获得的。然后还有另一列 DRI,它需要超过 99.99 才能获得奖励。

但它也需要计算有多少。比如第一个是P1,第二个是P2,以此类推。

所以这是我到目前为止所拥有的:

   SELECT  
 PointsUploading.Hgt, PointsUploading.RegNum, PointsUploading.Callname, PointsUploading.OLastname,  
 PointsUploading.Tpe, PointsUploading.Points, PointsUploading.Class, PointsUploading.Total_Points,  
 PointsUploading.Title, PointsUploading.Platinum, PointsUploading.Silver_Purple,  
 PointsUploading.Date_Earned, PointsUploading.Judge, PointsUploading.HostClub, PointsUploading.DRI,  
 PointsUploading.Class_Subset, PointsUploading.IncorrectRegNum, PointsUploading.MemNum, PointsUploading.ID

FROM
 (
   SELECT
    Hgt, RegNum, Callname, OLastname, Tpe, Points, Class,  
    Total_Points, Title, Silver_Purple, Date_Earned, Judge,  
    HostClub, DRI, Class_Subset, IncorrectRegNum, MemNum, ID, 

 IF (
     Class_Subset = @prevSub  
     AND RegNum = @prevNum  
     AND `DRI` > 99.99,  
     @Platinum := @Platinum + 1,  
     0
    ) AS Platinum,  
    @prevSub := Class_Subset,  
    @prevNum := RegNum
   FROM  
    PointsUploading,  

 (  
      SELECT @Platinum := 0, @prevSub := '', @prevNum := ''  
    ) r  
   ORDER BY RegNum, Class_Subset, Date_Earned  
 ) PointsUploading

显然这不起作用,否则我不会在这里。

我从中得到的结果是它不会为第一个条目颁发奖励,因为没有以前的数字可以关闭,所以它返回 false 并给出 0。但是当一个条目中有多个条目时行,它仍然会跳过第一个,因为它不匹配任何内容,但随后它将开始为第二个和第三个条目颁发奖项。但它们总是相差 1。

然后它也不会重置。因此,当它到达一只新狗时,它从 1 开始,它从与最后一只狗离开的地方开始。

我希望这不是太模糊,不确定最好的解释方法是什么。也许正确文件应该是什么样子的屏幕截图?

结构是这样的:

      CREATE TABLE `PointsUploading` (
  `Hgt` varchar(3) default '-',
  `RegNum` varchar(10) NOT NULL,
  `Callname` varchar(20) NOT NULL,
  `OLastname` varchar(50) default '-',
  `Type` varchar(10) default '-',
  `Points` varchar(10) NOT NULL,
  `Class` varchar(10) default '-',
  `Total_Points` int(10) NOT NULL,
  `Title` varchar(25) default '-',
  `Platinum` varchar(20) default '-',
  `Silver_Purple` varchar(20) default '-',
  `Date_Earned` date NOT NULL,
  `Judge` varchar(50) default '-',
  `HostClub` varchar(50) default '-',
  `DRI` decimal(10,2) default NULL,
  `Class_Subset` varchar(10) NOT NULL,
  `IncorrectRegNum` varchar(10) default '-',
  `MemNum` varchar(10) NOT NULL,
  `ID` int(10) NOT NULL

一些数据可以玩:

    INSERT INTO `PointsUploading` VALUES('12', '01-11062', 'Abby', 'Weisz', '', '10', 'EAC', 315, NULL, 'P1', '', '2007-10-07', 'Daun', 'AARF Oct-07', 101.87, 'RZ', '', 'MU101', 335172);
INSERT INTO `PointsUploading` VALUES('12', '01-11062', 'Abby', 'Weisz', '', '10', 'TN-E', 110, NULL, 'P1', '', '2008-10-04', 'Nally', 'AARF Oct-08', 101.65, 'TNZ', '', 'MU101', 730721);
INSERT INTO `PointsUploading` VALUES('20', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'EJC', 200, 'S-EJC', 'P1', '', '2006-09-20', '', 'NADAC Championships Sep-06', 100.44, 'JZ', '', 'ME522', 154795);
INSERT INTO `PointsUploading` VALUES('20', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'EJC', 210, NULL, 'P2', '', '2006-09-20', '', 'NADAC Championships Sep-06', 108.13, 'JZ', '', 'ME522', 154796);
INSERT INTO `PointsUploading` VALUES('16', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'EJC-V', 390, NULL, 'P3', '', '2008-09-17', 'NADAC judges', 'NADAC Championships 2008', 107.02, 'JZ', '', 'ME522', 154814);
INSERT INTO `PointsUploading` VALUES('16', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'EJC-V', 400, 'EJC-400', 'P4', '', '2008-09-17', 'NADAC judges', 'NADAC Championships 2008', 110.00, 'JZ', '', 'ME522', 154815);
INSERT INTO `PointsUploading` VALUES('16', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'EAC-V', 485, NULL, 'P1', '', '2008-05-24', 'Birdsong', 'Manzanita Agility club May-08', 100.86, 'RZ', '', 'ME522', 335232);
INSERT INTO `PointsUploading` VALUES('16', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'EAC-V', 595, NULL, 'P2', '', '2009-03-01', 'Perlmutter', 'BARK Feb-09', 100.41, 'RZ', '', 'ME522', 335243);
INSERT INTO `PointsUploading` VALUES('20', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'TG-E', 150, NULL, 'P1', '', '2008-07-27', 'Brown', 'Manzanita Agility Jul-08', 100.92, 'TGZ', '', 'ME522', 630088);
INSERT INTO `PointsUploading` VALUES('20', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'TN-E', 240, NULL, 'P1', '', '2008-02-09', 'Judges List', 'NADAC Ramona Feb8-10-08', 106.35, 'TNZ', '', 'ME522', 730747);
INSERT INTO `PointsUploading` VALUES('20', '01-11068', 'Ronnie', 'Cirinelli', '', '10', 'TN-E', 310, NULL, 'P2', '', '2009-11-01', 'Brown', 'Manzanita Agility Oct-09', 103.13, 'TNZ', '', 'ME522', 730754);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 510, NULL, 'P1', '', '2006-01-07', '', 'Columbia Agility Team Jan-06', 109.76, 'JZ', '', 'MG076', 975519);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 520, NULL, 'P2', '', '2006-01-08', '', 'Columbia Agility Team Jan-06', 107.20, 'JZ', '', 'MG076', 975510);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 560, NULL, 'P3', '', '2006-03-11', '', 'Top Dog Mar-06', 109.25, 'JZ', '', 'MG076', 975506);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 570, NULL, 'P4', '', '2006-03-12', '', 'Top Dog Mar-06', 110.00, 'JZ', '', 'MG076', 975500);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 580, NULL, 'P5', '', '2006-04-23', '', 'Extreme Agility Team Apr-06', 110.00, 'JZ', '', 'MG076', 975499);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 590, NULL, 'P6', '', '2006-06-04', '', 'Zooming Agility Pups Jun-06', 103.57, 'JZ', '', 'MG076', 975498);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 600, 'EJC-600', 'P7', '', '2006-06-11', '', 'NADAC Auburn Jun-06', 110.00, 'JZ', '', 'MG076', 975497);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 610, NULL, 'P8', '', '2006-06-24', '', 'Rainier Agility Team Jun-06', 106.97, 'JZ', '', 'MG076', 975496);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 620, NULL, 'P9', '', '2006-06-25', '', 'Rainier Agility Team Jun-06', 101.19, 'JZ', '', 'MG076', 975495);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 700, 'EJC-700', 'P10', '', '2007-02-10', '', 'Rainier Agility Team Feb-07', 110.00, 'JZ', '', 'MG076', 975477);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 720, NULL, 'P11', '', '2007-02-25', '', 'Columbia Agility Team Feb-07', 106.50, 'JZ', '', 'MG076', 975475);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 730, 'NATCH-7-Jum', 'P12', '', '2007-04-22', '', 'Extreme Agility Team Apr-07', 108.92, 'JZ', '', 'MG076', 975474);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 740, NULL, 'P13', '', '2007-05-27', '', 'NADAC Corvallis MT May 26-28-07', 101.16, 'JZ', '', 'MG076', 975473);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 770, NULL, 'P14', '', '2007-06-20', '', 'Rainier Agility Team Jun-07', 102.64, 'JZ', '', 'MG076', 975452);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 780, NULL, 'P15', '', '2007-06-21', '', 'Rainier Agility Team Jun-07', 110.00, 'JZ', '', 'MG076', 975313);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 790, NULL, 'P16', '', '2007-08-31', '', 'NADAC Gold Beach Labor Day-07', 110.00, 'JZ', '', 'MG076', 975236);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 830, 'NATCH-8-Jum', 'P17', '', '2007-09-20', '', 'NADAC Championships Sep-07', 110.00, 'JZ', '', 'MG076', 975232);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 860, NULL, 'P18', '', '2007-10-28', 'Daun', 'Willamette Agility Group Oct-07', 105.14, 'JZ', '', 'MG076', 975216);
INSERT INTO `PointsUploading` VALUES('20', '01-11073', 'Harley', 'Perry', '', '10', 'EJC', 870, NULL, 'P19', '', '2007-11-23', 'Katzen', 'ZAP Nov-07', 105.16, 'JZ', '', 'MG076', 975215);

理想情况下,最终结果是什么样的

4

0 回答 0