У меня небольшие проблемы с пониманием основной разницы между типом IORef и типом MVar в Haskell. Может ли кто-нибудь мне с этим помочь? Кажется, они решают одну и ту же проблему. Кажется, что MVar ориентирован на многопоточность, но IORef имеет функцию atomicModifyIORef.
Спасибо! Продукт ProductID ProductName 1 Cycle 2 Scooter 3 Car CustomerID CustomerName 101 Ronald 102 Michelle ...
У меня есть три таблицы:
Продукт
ProductID ProductName
1 Cycle
2 Scooter
3 Car
Клиент
CustomerID CustomerName
101 Ronald
102 Michelle
103 Armstrong
104 Schmidt
105 Peterson
Транзакции
TID ProductID CustomerID TranDate Amount
10001 1 101 01-Jan-11 25000.00
10002 2 101 02-Jan-11 98547.52
10003 1 102 03-Feb-11 15000.00
10004 3 102 07-Jan-11 36571.85
10005 2 105 09-Feb-11 82658.23
10006 2 104 10-Feb-11 54000.25
10007 3 103 20-Feb-11 80115.50
10008 3 104 22-Feb-11 45000.65
Я написал запрос для группировки такие транзакции:
SELECT P.ProductName AS Product,
C.CustName AS Customer,
SUM(T.Amount) AS Amount
FROM Transactions AS T
INNER JOIN Product AS P
ON T.ProductID = P.ProductID
INNER JOIN Customer AS C
ON T.CustomerID = C.CustomerID
WHERE T.TranDate BETWEEN '2011-01-01' AND '2011-03-31'
GROUP BY
P.ProductName,
C.CustName
ORDER BY
P.ProductName
, что дает следующий результат:
Product Customer Amount
Car Armstrong 80115.50
Car Michelle 36571.85
Car Schmidt 45000.65
Cycle Michelle 15000.00
Cycle Ronald 25000.00
Scooter Peterson 82658.23
Scooter Ronald 98547.52
Scooter Schmidt 54000.25
Мне нужен результат запроса в форме MATRIX, например:
Customer |------------ Amounts ---------------
Name |Car Cycle Scooter Totals
Armstrong 80115.50 0.00 0.00 80115.50
Michelle 36571.85 15000.00 0.00 51571.85
Ronald 0.00 25000.00 98547.52 123547.52
Peterson 0.00 0.00 82658.23 82658.23
Schmidt 45000.65 0.00 54000.25 99000.90
Пожалуйста, помогите мне получить вышеуказанный результат в SQL Server 2005. Использование нескольких представлений или даже временных столы мне подходят.