我有包括以下字段SQL Server的加入和查询问题
CREATE TABLE [dbo].[BILLING_HISTORY2](
[ID] [int] IDENTITY(1,1) NOT NULL,
[READING_MONTH_YEAR] [date] NULL,
[READING] [int] NULL,
[CONSUMER_ID] [int] NULL,
[payment_status] [bit] NOT NULL
)
http://www.sqlfiddle.com/#!3/892e0/5
下列查询的表billing_history返回MAX付费和最大未付价值的消费者
SELECT MAX(READING) AS 'MAXIMUM_PAID_READING',consumer_id from billing_history2
where payment_status=0 GROUP BY consumer_id;
SELECT MAX(READING) AS 'MAXIMUM_UNPAID_READING',consumer_id from billing_history2
where payment_status=1 GROUP BY consumer_id;
但是,当我加入它们从MAXIMUM_UNPAID_READING中减去MAXIMUM_PAID_READING以获取当前读数时,通过加入上述两个查询,结果返回所有具有匹配的consumer_id的记录。因此,如果消费者尚未支付任何账单,该ID将在PAID_READING中被省略,因此INNER JOIN不会返回任何结果。如果我使用FULL OUTER JOIN,它将返回所有记录,但将差异设置为NULL。
我需要通过从先前的未付使用中减去它来找出客户的当前使用情况。
我该如何去加入这两个查询,这样才能发现由此产生的差异,而不管这个人是否在过去支付账单。
由于它解决了这个问题 – user2018756 2013-02-18 09:52:57