Я сделал такой запрос:
SELECT Code,
kind,
SUM(valP) AS value
FROM transaction
WHERE tp = 'N' and date = '20110312'
GROUP BY Code,kind ORDER BY Code,kind;
для таблицы базы данных, которая дает мне этот набор результатов:
+------+------+------+
| Code | kind| value|
+------+------+------+
| 1 | TR | 25,99|
| 1 | CT | 22,17|
| 2 | TR | 14,23|
| 3 | DD | 09,67|
| 3 | DD | 23,87|
| 3 | CT | 34,87|
+------+------+------+
Код представляет код транзакции, вид представляет платежитип и значение представляют стоимость платежей.
Я хочу включить в набор результатов только сгруппированный результат, который содержит тип вида = 'CT', но я хочу включить также другие виды платежей в ту же транзакцию, например, я пытался добавитьнеобходимость в верхнем запросе:
SELECT Code,
kind,
SUM(valP) AS value
FROM transaction
WHERE tp = 'N' and date = '20110312'
GROUP BY Code,kind HAVING kind = 'CT'
ORDER BY Code,kind;
но я получаю что-то вроде этого:
+------+------+------+
| Code | kind| value|
+------+------+------+
| 1 | CT | 22,17|
| 3 | CT | 34,87|
+------+------+------+
Вместо этого я хочу получить что-то вроде этого:
+------+------+------+
| Code | kind| value|
+------+------+------+
| 1 | TR | 25,99|
| 1 | CT | 22,17|
| 3 | DD | 09,67|
| 3 | DD | 23,87|
| 3 | CT | 34,87|
+------+------+------+
Есть ли способ получить это во всех строках транзакции, которые есть в записи с типом CT?
Как я могу это сделать?
На самом деле я работаю над SQL Server 2005, ноМне может потребоваться выполнить аналогичный запрос в PostgreSQL.
Спасибо