2016-01-11 4 views
0
SELECT Student_Number, 
DATEPART("yyyy", Starting_Date) AS Starting_Year, 
DATEPART("yyyy",Ending_Date) AS Ending_Year 
FROM PGME 
WHERE ID = 1 

Показать нижезапроса MS Access Сравнение Номер и дисплей

Student_Number Starting_Year Ending_Year 
003329497   1994   1999 

Но что мне нужно, это сравнение "Starting_Year" и "Ending_Year" (они случайно датировать), когда "Ending_Year" больше, чем «Starting_Year», он покажет новую строку, пока «Starting_Year» не будет равен «Ending_Year». (Я ожидаю, чтобы получить следующий результат)

Student_Number Starting_Year Ending_Year 
003329497   1994   1999 
003329497   1995   1999 
003329497   1996   1999 
003329497   1997   1999 
003329497   1998   1999 
003329497   1999   1999 

Student_Number (1)

Student_Number Starting_Year Ending_Year 
002442895   1993   2000 
002442895   1994   2000 
002442895   1995   2000 
002442895   1996   2000 
002442895   1997   2000 
002442895   1998   2000 
002442895   1999   2000 
002442895   2000   2000 

Student_Number (2)

Есть более чем 100 "Student_Number" мне нужно делать. Я думаю использовать выражение «если», чтобы сделать это, но не могу понять это. Любые способы сделать это?

ответ

0

Вы можете использовать декартову (мультипликативный) запрос:

SELECT 
    Student_Number, 
    Year(Starting_Date) + Ten.N AS Starting_Year, 
    Year(Ending_Date) AS Ending_Year 
FROM 
    PGME, 
     (SELECT DISTINCT Abs([id] Mod 10) AS N 
     FROM msysobjects) As Ten 
WHERE 
    PGME.ID = 1 
    And 
    Ten.N <= Year(Ending_Date) - Year(Starting_Date) 
+0

Это работает! Спасибо! Как я могу отобразить остальную часть Student_Number? используя ID = 2? Но я должен их редактировать один за другим. любые способы печати Student_Number (1) в листе 1 и Student_Number (2) на листе 2, до конца Student_Number –

+0

Если вы удалите критерий для ID, вы получите их все. Или передайте идентификатор в качестве параметра для индивидуального выбора. – Gustav

+0

Благодарим вас за советы, я пытаюсь удалить критерий, но это случайное число. Как передать идентификатор в качестве параметра? объединить все данные как одну таблицу. Еще раз спасибо. –

Смежные вопросы