Я действительно только добавляю к существующему ответу здесь, так как вторая часть ответа верна, но первая часть не перекрёстно соединяется, как требуется, поэтому пропускает сценарий, когда OP может требовать все типы карт на все даты, которыебыли заказы.Я не уверен в правильности этикета для этого, так как все еще хочу воспользоваться преимуществами форматирования кода, сопровождающего ответ ...
-- CREATE SAMPLE DATA
CREATE TABLE #CCType (ID INT NOT NULL PRIMARY KEY, CCType VARCHAR(15) NOT NULL)
INSERT #CCType VALUES (1, 'AMEX'), (2, 'VISA'), (3, 'MASTER CARD'), (4, 'OTHER')
CREATE TABLE #Trans (TransID INT NOT NULL PRIMARY KEY, CCTypeID INT NOT NULL, Transactionname VARCHAR(15), OrderID INT NOT NULL)
INSERT #Trans VALUES (1, 2, 'BIILPAY', 10), (2, 4, 'SECUREPAYMENT', 13), (3, 1, 'BIILPAY', 15)
CREATE TABLE #Orders (OrderID INT NOT NULL PRIMARY KEY, OrderDate DATETIME NOT NULL, Product VARCHAR(10), TransID INT)
INSERT #Orders VALUES (10, '20120227', 'Grapes', 1), (13, '20120226', 'Wine', 2), (14, '20120226', 'Pepper', 6), (15, '20120226', 'Apples', 1)
-- END CREATE SAMPLE DATA
SELECT OrderDate,
CCType,
COUNT(CASE WHEN ID = CCTypeID THEN 1 END) [Processed]
FROM #CCType, #Orders, #trans
WHERE #Orders.TransID = #Trans.TransID
AND #Orders.OrderID = #Trans.OrderID
GROUP BY OrderDate, CCType, ID
ORDER BY OrderDate DESC, ID
-- DISPOSE OF SAMPLE DATA
DROP TABLE #Orders, #CCType, #Trans