Я пытаюсь получить общее количество элементов в определенной папке в базе данных - SQL (HP ALM)

Я пытаюсь получить общее количество тестовых случаев в каждой папке приложения в модуле Test Plan в HP ALM 11.

Это то, что у меня есть до сих пор:

SELECT
Count (TS_TEST_ID) As "App1",
Count (TS_TEST_ID) As "App2",
Count (TS_TEST_ID) As "App3",
Count (TS_TEST_ID) As "App4",
Count (TS_TEST_ID) As "App5",
Count (TS_TEST_ID) As "App6",
Count (TS_TEST_ID) As "App7",
Count (TS_TEST_ID) As "App8"

FROM DESSTEPS, TEST, ALL_LISTS
WHERE DS_TEST_ID = TS_TEST_ID
AND  AL_ITEM_ID = TS_SUBJECT
AND TS_SUBJECT = ALL_LISTS.AL_ITEM_ID
AND AL_DESCRIPTION = 'App1 Folder Name in the Database'

Запрос выводит столбец для каждого имени приложения, но я могу получить общее количество тестов только для App1. Допустим, это число равно 100. Оно выбрасывает 100 по всем направлениям для каждого приложения. Есть ли способ перечислить все папки приложений, чтобы в каждом столбце было общее количество, относящееся к этому приложению? Мне нужно как-то перечислить все имена папок, и я не могу понять. Это возможно? Спасибо вам за помощь.


person Pockets2Deep    schedule 08.01.2016    source источник
comment
Я провел много часов, исследуя это, и я никогда не нашел этот точный вопрос. Я постараюсь найти дубликат, но если у вас есть ссылка на него, я бы хотел его увидеть. Я потратил слишком много времени на эту вещь, я, наконец, задал вопрос.   -  person Pockets2Deep    schedule 10.01.2016


Ответы (1)


Итак, вам нужно количество тестов для каждого приложения, и каждое AL_DESCRIPTION представляет приложение, и вам нужно ровно 8 конкретных приложений, верно? Я думаю, что вы хотите следующее:

SELECT AL_DESCRIPTION, Count (TS_TEST_ID)
FROM DESSTEPS, TEST, ALL_LISTS
WHERE DS_TEST_ID = TS_TEST_ID
  AND  AL_ITEM_ID = TS_SUBJECT
  AND TS_SUBJECT = ALL_LISTS.AL_ITEM_ID
  AND AL_DESCRIPTION IN
    ('App1 Folder Name in the Database', 'App2 Folder Name in the Database', [...],'App8 Folder Name in the Database')
GROUP BY AL_DESCRIPTION

Однако значения будут отображаться вертикально, но я не думаю, что это проблема, не так ли?

person Seipas    schedule 08.01.2016
comment
Так что это хорошо работает для одного приложения, но я не могу заставить его работать для нескольких папок приложений. Я добавил новую строку после второго AND: AND AL_DESCRIPTION = 'App1'. Кажется, я не могу понять, как разместить там все восемь приложений. Я не могу просто сделать это? AND AL_DESCRIPTION = 'App1', 'App2' и т. д. и т. д. редактировать: извините, я новичок и не знаю, как вставлять блоки кода, когда комментирую комментарий. - person Pockets2Deep; 10.01.2016
comment
Я должен был упомянуть, что мне не нужно каждое имя папки приложения. Мне нужно насчитать восемь папок из, наверное, 20. И эти восемь папок являются подпапками. Путь выглядит так: Тема/Основное приложение/Приложение1 Тема/Основное приложение/Приложение2. - person Pockets2Deep; 10.01.2016
comment
Я отредактировал свой ответ, чтобы было только 8 приложений. Работает ли сейчас? - person Seipas; 10.01.2016
comment
Спасибо за ответ. Однако я не могу заставить его работать. Нужен ли фрагмент AL_DESCRIPTION = перед каждым именем папки приложения? Я пробовал это, но, похоже, не работает. Я тоже попробовал ваш способ и не могу заставить его работать. Я удалил часть AL_DESCRIPTION = в этом последнем AND stmt, и я получаю первую папку приложения и 7-ю папку приложения. Хотя ничего другого. Какие-нибудь мысли? - person Pockets2Deep; 11.01.2016
comment
Нет, я забыл удалить один. Это либо: ` AND AL_DESCRIPTION IN («Имя папки App1 в базе данных», «Имя папки App2 в базе данных», [...], «Имя папки App8 в базе данных»)` или: ` AND (AL_DESCRIPTION = ' Имя папки App1 в базе данных» ИЛИ AL_DESCRIPTION = «Имя папки App2 в базе данных» ИЛИ [...] ИЛИ AL_DESCRIPTION = «Имя папки App8 в базе данных»)` - person Seipas; 11.01.2016
comment
Оба они, похоже, работают, но по-прежнему выдают данные только для двух папок приложений. Первый и восьмой в списке. В каждой папке приложения есть тестовые примеры, поэтому я должен видеть номер для всех из них. Если я удаляю семь приложений и получаю только App1 и App2, это дает мне данные только для App1, но код работает. Я собираюсь продолжать работать над этим, но любые другие идеи были бы замечательными. Еще раз спасибо за время, которое вы потратили, помогая мне. - person Pockets2Deep; 11.01.2016
comment
Вы уверены, что правильно написали имя папки App2? Вы уверены, что в вашей базе данных есть кортежи, в которых AL_DESCRIPTION = имя вашей папки App2 (с правильным написанием)? - person Seipas; 12.01.2016
comment
Я написал все правильно, но я не уверен, что вы имеете в виду, когда говорите, что в вашей базе данных есть кортежи, в которых AL_DESCRIPTION = имя вашей папки App2. App1 и App8 работают нормально, и все папки настроены одинаково. Я предполагаю, что все настроено правильно для этого отчета. - person Pockets2Deep; 12.01.2016
comment
Я имел в виду, действительно ли информация о App2 до App7 находится в базе данных? Мне кажется странным, что этот запрос работает для приложений 1 и 8, но не для других. - person Seipas; 12.01.2016