Как получить 2 разных столбца данных из одной таблицы

#sql #ms-access

Вопрос:

У меня есть этот стол:

код ПОДКОД ценность
1 120 5130
1 100 1000
1 983 -123
2 100 598123
2 713 -7123
2 813 -78123
3 110 5123
3 130 -8976
4 150 951
4 123 -6891
5 160 513
5 512 -213

Как я могу получить список всех положительных столбцов данных с одной стороны и с другой стороны со всеми отрицательными данными?

ПОДКОД ценность ПОДКОД ценность
100 598123 813 -78123
120 5130 130 -8976
110 5123 713 -7123
100 1000 123 -6891
150 951 512 -213
160 513 983 -123

Ответ №1:

Я не знаю, почему предыдущая версия этого вопроса была закрыта, потому что это было совершенно ясно с образцами данных и желаемыми результатами.

С большой болью в MS Access-но это возможно. Вам нужно перечислить значения, а затем объединить их. Я думаю, что это сработает:

 select max(subcode), max(data), max(subcode_neg), max(data_neg)
from (select subcode, data, null as subcode_neg, null as data_neg
             (select count(*) from t as t2 where t2.subcode <= t.subcode and t2.data > 0
             ) as seqnum
      from t
      where data > 0
      union all
      select null, null, subcode, data,
             (select count(*) from t as t2 where t2.subcode <= t.subcode and t2.data < 0
             ) as seqnum
      from t
      where data < 0
     ) as tt
group by seqnum;