Если результаты вашего запроса верны, то все, что вам нужно, это group by
для этого запроса:
select
t.PropNumber, t.propname, t.detail_group,
sum(t.UnitCount) UnitCount, sum(t.MoveIns) MoveIns
from (
<your query>
) t
group by
t.PropNumber, t.propname, t.detail_group
Один путь был бы посредством автоматизации браузера - Вы упомянули WebClient, таким образом, я предполагаю, что Вы могли бы обращаться к WebClient в.NET.
Два основных момента:
, Вот шаги, которые я выполнил бы:
На шаге 2, я упоминаю несколько сложный метод для автоматизации входа в систему. Обычно, можно отправить с именем пользователя и паролем непосредственно к известному действию формы входа в систему, не получая начальную форму или передав скрытые поля. Некоторые сайты имеют проверку формы (отличающийся от полевой проверки) на их формах, который заставляет этот метод не работать.
HtmlAgilityPack является библиотекой.NET, которая позволяет Вам превращать плохо сформированный HTML в XmlDocument, таким образом, Вы можете XPath по нему. Довольно полезный.
Наконец, можно столкнуться с ситуацией, где форма полагается на клиентский сценарий для изменения значений формы перед представлением. Вы, возможно, должны моделировать это поведение.
Используя инструмент для просмотра трафика HTTP для этого типа работы чрезвычайно полезно - я рекомендую ieHttpHeaders, Скрипач , или FireBug (сетевая вкладка).
Можно ли разъясниться? Класс WebClient, Вы говорите о том в HTTPUnit/Java?
Если так, Ваша сессия должна быть сохранена автоматически.
Это не ясно из Вашего вопроса, к какому классу WebClient (или язык) Вы обращаетесь.
, Если имеют Среду выполнения Java, можно использовать класс Apache HttpClient; вот пример, я записал использованию Groovy, который получает доступ к восхитительному API по SSL:
def client = new HttpClient()
def credentials = new UsernamePasswordCredentials( "username", "password" )
def authScope = new AuthScope("api.del.icio.us", 443, AuthScope.ANY_REALM)
client.getState().setCredentials( authScope, credentials )
def url = "https://api.del.icio.us/v1/posts/get"
def method = new PostMethod( url )
method.addParameter( "tag", tag )
client.executeMethod( method )
Можно легко моделировать ввод данных пользователем. Можно отправить форму на веб-странице от Вас, программа путем отправки post\get запрашивает к веб-сайту.
Типичная форма входа в систему похожа:
<form name="loginForm" method="post" Action="target_page.html">
<input type="Text" name="Username">
<input type="Password" name="Password">
</form>
можно отправить запрос сообщения к значениям обеспечения веб-сайта для Имени пользователя & поля Пароля. То, что происходит после того, как Вы отправляете свой запрос, в основном зависит от веб-сайта, обычно Вы будете перенаправлены к некоторой странице. Вы информация об авторизации будете сохранены в sessions\cookie. Таким образом, если Вы очищаете клиент, может поддержать сеть session\understands cookie, Вы будете в состоянии получить доступ к защищенным страницам.
не ясно из Вашего вопроса, какой language\framework Вы собираетесь использовать. Например, существует платформа для анализа экранных данных (включая функциональность входа в систему) записана в жемчуге - WWW:: Механизируйте
Примечание, что можно столкнуться с некоторыми проблемами, если сайт Вы пытаетесь войти в систему к сценариям Java использования или некоторой КАПЧЕ.