【发布时间】:2011-04-21 14:57:56
【问题描述】:
所以我什至不确定这是否可能,但学习并能够做到这一点真的很棒。
我要做的是运行 3 个单独的查询,它们返回单行数据并创建一个表,然后可以在 asp.net 的 gridview 中使用该表
查询 1
SELECT dbo.BOOKINGS.USERID, SUM(dbo.BOOKINGS.APRICE) AS total, COUNT
(dbo.BOOKINGS.USERID) AS bookingcount
FROM dbo.BOOKINGS INNER JOIN
dbo.TOURS ON dbo.BOOKINGS.TOUR = dbo.TOURS.TOUR INNER JOIN
dbo.MAJOR ON dbo.TOURS.MAJOR = dbo.MAJOR.MAJOR
WHERE (dbo.BOOKINGS.BOOKED BETWEEN CONVERT(int, @startdate) AND CONVERT(int,
@enddate)) AND (dbo.MAJOR.SDESCR = 'Cruises') AND
(dbo.BOOKINGS.USERID = @USER) AND (dbo.MAJOR.DIVISION = 'A')
GROUP BY dbo.BOOKINGS.USERID
查询 2
SELECT dbo.BOOKINGS.USERID, SUM(dbo.BOOKINGS.APRICE) AS total, COUNT
(dbo.BOOKINGS.USERID) AS bookingcount
FROM dbo.BOOKINGS INNER JOIN
dbo.TOURS ON dbo.BOOKINGS.TOUR = dbo.TOURS.TOUR INNER JOIN
dbo.MAJOR ON dbo.TOURS.MAJOR = dbo.MAJOR.MAJOR
WHERE (dbo.BOOKINGS.BOOKED BETWEEN CONVERT(int, @startdate) AND CONVERT(int,
@enddate)) AND (dbo.MAJOR.SDESCR <> 'Cruises') AND
(dbo.BOOKINGS.USERID = @USER) AND (dbo.MAJOR.DIVISION = 'A')
GROUP BY dbo.BOOKINGS.USERID
查询 3
SELECT SUM(dbo.SUBS.AMOUNT) AS total, COUNT(dbo.SUBS.AMOUNT) AS Memberships,
dbo.HOMES.USERID
FROM dbo.HOMES INNER JOIN
dbo.SUBS ON dbo.HOMES.HOME = dbo.SUBS.HOME AND dbo.HOMES.JOINED
= dbo.SUBS.PAIDON
WHERE (dbo.HOMES.JOINED BETWEEN CONVERT(int, @startdate) AND CONVERT(int,
@enddate)) AND (dbo.HOMES.USERID =
@USER)
GROUP BY dbo.HOMES.USERID
所有 thre 查询都返回包含 3 列的单行 所以我认为这可能会起作用,唯一困难的部分是我想添加一个新列
query1 userid total1 bookingcount
query2 userid total2 bookingcount
query3 userid total3 memberships
【问题讨论】:
标签: sql sql-server-2005 stored-procedures