Want to Group By Union Two Query

  • Thread starter Thread starter Jonathan Woods
  • Start date Start date
J

Jonathan Woods

Hi there,

I have no idea why the following TSQL does not work.Any Idea? I am
using SQL 2000 Server

CREATE PROCEDURE RptDailySummary2
@FromTxDate DATETIME,
@ToTxDate DATETIME
AS
BEGIN
SELECT TxDate,TxType,CurrencyName,SavBalance
FROM
(
(
SELECT dbo.Dateonly(TxDate) AS
TxDate,dbo.CurrencyName(CurrencyID)AS
CurrencyName,TxType,SUM(SavBalance) AS SavBalance
FROM ActiveLedger
GROUP BY CurrencyID,TxType,dbo.DateOnly(TxDate)
HAVING dbo.DateOnly(TxDate) BETWEEN
dbo.DateOnly(@FromTxDate) AND dbo.DateOnly(@ToTxDate)
)
UNION
( SELECT dbo.Dateonly(TxDate) AS
TxDate,dbo.CurrencyName(CurrencyID)AS
CurrencyName,TxType,SUM(SavBalance) AS SavBalance
FROM PassiveLedger
GROUP BY CurrencyID,TxType,dbo.DateOnly(TxDate)
HAVING dbo.DateOnly(TxDate) BETWEEN
dbo.DateOnly(@FromTxDate) AND dbo.DateOnly(@ToTxDate)
)
)
GROUP BY TxDate,CurrencyName,TxType
ORDER BY CurrencyName,TxType
END
 
From what I remember, T-SQL syntax needs a name, alias, for the joined
query, like as Table1:

SELECT TxDate,TxType,CurrencyName,SavBalance
FROM
(
(
SELECT dbo.Dateonly(TxDate) AS
TxDate,dbo.CurrencyName(CurrencyID)AS
CurrencyName,TxType,SUM(SavBalance) AS SavBalance
FROM ActiveLedger
GROUP BY CurrencyID,TxType,dbo.DateOnly(TxDate)
HAVING dbo.DateOnly(TxDate) BETWEEN
dbo.DateOnly(@FromTxDate) AND dbo.DateOnly(@ToTxDate)
)
UNION
( SELECT dbo.Dateonly(TxDate) AS
TxDate,dbo.CurrencyName(CurrencyID)AS
CurrencyName,TxType,SUM(SavBalance) AS SavBalance
FROM PassiveLedger
GROUP BY CurrencyID,TxType,dbo.DateOnly(TxDate)
HAVING dbo.DateOnly(TxDate) BETWEEN
dbo.DateOnly(@FromTxDate) AND dbo.DateOnly(@ToTxDate)
)
) AS UnionTable
GROUP BY TxDate,CurrencyName,TxType
ORDER BY CurrencyName,TxType
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top