Я пишу отчет о марже в нашей Главной книге, и у меня есть основы работы, но мне нужно объединить строки на основе конкретной логики, и я не знаю, как ...Как объединить строки данных SQL на основе столбцов?
Мои данные выглядят как это:
value1 value2 location date category debitamount creditamount
2029 390 ACT 2012-07-29 COSTS - Widgets and Gadgets 0.000 3.385
3029 390 ACT 2012-07-24 SALES - Widgets and Gadgets 1.170 0.000
и мой отчет должен отображать две колонки вместе таким образом:
plant date category debitamount creditamount
ACT 2012-07-29 Widgets and Gadgets 1.170 3.385
логика присоединиться к ним содержится в значению1 и значение 2 столбца. Если последние 3 цифры значения 1 и все три цифры значения 2 совпадают, строки должны быть объединены. Кроме того, 1-я цифра значения 1 всегда будет равна 2 для продаж и 3 для затрат (не уверены, если это имеет значение)
IE 2029-390 - это деньги для виджетами и гаджетами, проданными клиентам, а 3029-390 - деньги, потраченные на покупку виджетами и гаджетами у поставщиков.
Как я могу это сделать программно в моей хранимой процедуре? (SQL Server 2008 R2)
Редактировать: Могу ли я загрузить 3000-х в одну таблицу переменных и 2000-х в другую, а затем присоединиться к двум по значению2 и справа (значение1, 3)? Или что-то типа того?
Пожалуйста, отметьте это как правильное, если это поможет. Дайте мне знать, если у вас есть вопросы, и я буду предлагать отзывы. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Спасибо за вашу помощь, я честно не знал, что могу использовать MAX() вот так. В итоге я загрузил 3000 и 2000 в свои собственные переменные таблицы, а затем объединил их с помощью вашего метода. Работал как шарм. Благодаря!!! – bluehiro
Я предполагаю, что единственным вопросом, который я мог бы добавить, было бы так: Как я могу сделать столбец Category всегда выбирать «Sales - Widget and Gadgets» вместо того, чтобы выбирать COSTS иногда и в других случаях SALES. Данные отчета точны, но первые 7 символов имен категорий иногда вводят в заблуждение. – bluehiro