я следующие 3 таблицы:предложения GROUP BY не показывает желаемого результата
POS_Transactions(TransactionDate,TerminalID,TransactionTypeID,TotalAmount)
Terminal(TerminalID,CountryID)
Country(CountryID,CountryName,CurrencyName)
Теперь я использую внутренние соединения, чтобы связать эти таблицы, но я не получаю желаемого результата т.е. не группируя Country-wise
SELECT C.countryname 'CountryName',
C.currencyname 'CurrencyName',
transactiondate,
Sum(CASE transactiontypeid
WHEN 6 THEN 1
ELSE 0
END) 'Number of Cards Issue',
Sum(CASE transactiontypeid
WHEN 6 THEN totalamount
ELSE 0
END) 'Total Amount Loaded',
Count(DISTINCT CASE transactiontypeid
WHEN 4 THEN pan
ELSE NULL
END)'Number of Card Redeemed',
Sum(CASE transactiontypeid
WHEN 4 THEN 1
ELSE 0
END) 'Number of Sales Transaction',
Sum(CASE transactiontypeid
WHEN 4 THEN totalamount
ELSE 0
END) 'Total Values of Sale Transaction'
INTO #temp
FROM pos_transactions p
INNER JOIN terminal T
ON T.terminalid = p.terminalid
INNER JOIN country C
ON T.countryid = C.countryid
GROUP BY transactiondate,
C.countryname,
C.currencyname,
C.countryid
select [Number of Cards Issue],[Total Amount Loaded], [Number of Card Redeemed],[Number of Sales Transaction],
[Total Values of Sale Transaction],CountryName,CurrencyName from #temp
where (TransactionDate >= @DateFrom)
and (TransactionDate < @DateTo)
drop table #temp
Например, если есть две записи Transactions
в Country
ОАЭ затем он показывает индивидуальные результаты:
(CountryName,Numbers of Cards Issued,CurrencyName,Total Amount Loaded,Number of Sales Transaction,Total Values of Sale Transaction)
UAE 1 SAR 320.000 0 0.0000
UAE 2 SAR 320.000 0 0.0000
Вместо этого следует группа результат для Country
UAE.Should быть
UAE 3 SAR 640.000 0 0.0000
Что я делаю неправильно?
что 1 и 2 в результате? –
Удалить 'TransactionDate' из' group by'. Возможно, вам придется исправить и другие части запроса. –
В вашем результате, где заканчивается один столбец и где начинается другое? Добавить имена столбцов в наборе результатов. –