Я следующий запрос -Агрегатные столбцы основаны от тех же данных
SELECT d.PRD_YY,
Count(*)
FROM (SELECT CARD,
Min(TXN_DT) mindt
FROM db1.dbo.tblcards
GROUP BY CARD) a
JOIN db1.dbo.tlkpdates d
ON a.MINDT = d.GREG_DT
WHERE d.PRD_YY = 2016
AND d.PRD_NBR = 5
GROUP BY d.PRD_YY
в основном, это говорит мне, сколько карт из моей tblcards
таблицы впервые появились в заданном диапазоне дат, который берется из tlkpdates
таблицы, присоединение к mindt
из моего внутреннего результата запроса.
Что я хочу сделать, это также посмотреть, сколько карт появилось в этом диапазоне дат вообще, а не только карты, первое появление которых было в этом диапазоне дат.
Не похоже, что это возможно, потому что я присоединяюсь к greg_dt
(это обычная григорианская дата, например, 6/1/2016) на минимальную дату, поэтому как я могу присоединиться к максимальной дате (последнее появление)?
Я знаю, что могу просто сделать другой запрос, возвратить тот же набор данных, но я бы предпочел бы его в том же запросе.
Редактировать - что также нужно учитывать, так это то, что я собираюсь группировать больше, чем просто PRD_YY - есть также период времени, период недели и период дня, для более детального просмотра.
выборка данных -
Card Date Store Transaction
1-05-08 25 141414
40999999999 2013-12-07 847 15154
30999999998 2015-02-05 96 234235
20999999997 2016-03-21 139 2342525
50999999996 2016-03-30 659 1234121515
70999999995 2016-03-04 659 52525
50999999994 2016-03-03 907 2362362
20999999993 2014-05-23 941 2623626
70999999992 2013-12-03 18 123124
40999999991 2014-01-18 107 1512515
выходной ток
prd_yy new_cards
2016 22911
требуемый выход
prd_yy new_cards total_cards
2016 22911 54992
Можете ли вы предоставить образцы данных, текущий выход и ожидаемый результат? Мне трудно понять, что вы описываете. – Siyual
Я всегда нахожу базы данных более интересными и интересными, когда разработчики используют загадочные имена и сокращения, такие как 'tlkpdates' и' greg_dt'. Это гораздо более загадочно. Понимание кода переоценено. –