2013-11-04 99 views
2

我需要一點幫助。我有發票表和發票明細表。我將我關心的數據從發票明細表中提取到臨時表(用於其他計算)。我需要找到發票中的明細行總和不等於發票表中的總費用的發票。這裏是我的代碼:sql server 2000比較明細總額到總金額

Create table #inv_det (
invco varchar(6), 
invno int, 
invtot money, 
invpd int); 

Insert into #inv_det (invco,invno,invtot,invpd) 
Select invd_inv_co, invd_inv_no, invd_total_cost, invd_glpd_no 
from invdet 
inner join invoice on invd_inv_co=inv_co and invd_inv_no=inv_no 
where inv_dt>=cast('10-01-13 00:00:00' as datetime) and inv_dt<=cast('10-31-13 11:59:59' as datetime); 

這裏是我的查詢:

Select invco, invno from #inv_det 
inner join invoice on invco=inv_co and invno=inv_no 
where inv_dt>=cast('10-01-13 00:00:00' as datetime) 
    and inv_dt<=cast('10-31-13 11:59:59' as datetime) 
having sum(invtot)<>inv_total_amt 
group by invco, invno; 

當我運行我的查詢,我得到「服務器:近味精156,級別15,狀態1,5號線 語法錯誤關鍵字「組」。「

我希望我能夠很好地解釋我的目標。希望有人能指出我錯過的東西。我嘗試了很多變化。

謝謝!

回答

2

GROUP BYHAVING是錯誤的方式圍繞在你的SQL

2

GROUP BY應該來HAVING像以前一樣:

Select invco,invno from #inv_det inner join invoice on 
invco=inv_co and invno=inv_no where inv_dt>=cast('10-01-13 00:00:00' as datetime) 
and inv_dt<=cast('10-31-13 11:59:59' as datetime) 
group by invco, invno 
having sum(invtot)<>inv_total_amt; 
+0

感謝。這工作。我可以先發誓。我很感激幫助。 –

+0

@ user2951171樂於幫助:)請考慮接受我的回答,以便將問題標記爲已解決。 – jpw