Я пытаюсь преобразовать следующий запрос Crosstab Access для работы в SQL Server 2008 (который не поддерживает Transform & Pivot). Любая помощь будет принята с благодарностью.Преобразование MS Access Crosstab в SQL Server 2008
TRANSFORM Last(dbo_TBL_DM_TEST_RESULTS_Flex.FAIL_CODE) AS LastOfFAIL_CODE1
SELECT dbo_TBL_DM_TEST_RESULTS_Flex.SERIAL_ID
FROM dbo_TBL_DM_TEST_RESULTS_Flex
WHERE (((dbo_TBL_DM_TEST_RESULTS_Flex.TEST_DATE)>#7/1/2013 0:0:1#) AND ((dbo_TBL_DM_TEST_RESULTS_Flex.TEST_RESULT)="fail"))
GROUP BY dbo_TBL_DM_TEST_RESULTS_Flex.SERIAL_ID
PIVOT dbo_TBL_DM_TEST_RESULTS_Flex.TEST_AREA In ("Test_1","Test_2","Test_3","Test_4","Test_5","Test_6");
Спасибо.
Если тест выполняется несколько раз, могу ли я извлечь последний результат Fail_code для каждого (test_1, Test_2 ... ect) на основе максимальной даты? У меня есть поле TEST_DATE, и я хочу вытащить последнюю запись для каждого теста. Если тест проходит или не запускается, поле FAIL_CODE будет NULL. Вот исходные данные, которые я хочу сделать.
TEST_AREA TEST_DATE SERIAL_ID TEST_RESULT FAIL_CODE
Test_1 8/14/2013 11:29:24 AM 12398701 PASS NULL
Test_2 8/17/2013 08:49:35 AM 12398701 PASS NULL
Test_3 8/17/2013 10:13:41 PM 12398701 FAIL Pwr_up
Test_3 8/17/2013 10:15:38 PM 12398701 PASS NULL
Test_4 8/17/2013 10:23:22 PM 12398701 FAIL Pwr_up
Test_4 8/17/2013 10:24:22 PM 12398701 PASS NULL
Test_5 8/18/2013 07:34:34 AM 12398701 FAIL Memory_1
Вот текущий результат, когда я запускаю SQL, предоставленный пользователем bluefeet.
SERIAL_ID Test_1 Test_2 Test_3 Test_4 Test_5 Test_6
12398701 NULL NULL Pwr_up Pwr_up Memory_1 NULL
Как вы можете видеть в необработанных данных - Test_3 anf Test_4 запускались дважды. Во время второго запуска Test_3 и Test_4 они прошли, поэтому я не хочу сообщать о первом сбое. Вот мой желаемый результат.
SERIAL_ID Test_1 Test_2 Test_3 Test_4 Test_5 Test_6
12398701 NULL NULL NULL NULL Memory_1 NULL
SQL2008 действительно поддерживает PIVOT –
Я отбросил изменения к этому вопросу, пожалуйста, разместите новый вопрос с новыми требованиями. [Задать вопрос здесь] (http://stackoverflow.com/questions/ask) – Taryn
@JimA please ** [сделать новый вопрос] (http://stackoverflow.com/questions/ask) **, не изменять это один. –