2015-11-13 21 views
2

enter image description here如何編寫下表

我有一個表的名稱爲「發票」,下設列名的「CID」

enter image description here

我還有一個表名作爲invoiceclient_details SQL查詢其中包括列名「CId」

所以現在我的問題是「我應該寫什麼查詢,以便我會得到更大的數據」CId「,即由更大的」CID「組成的數據行

我已經試過這樣

SELECT 
invoiceclient_details.OrganizationName, 
invoiceclient_details.InvoiceNo, 
invoiceclient_details.InvoiceDate, 
invoiceclient_details.DeliveryNote, 
invoiceclient_details.TermsofPayment, 
invoiceclient_details.EsugamNo, 
invoiceclient_details.OrganizationName, 
invoiceclient_details.BuyerOrderNo, 
invoiceclient_details.BuyDate, 
invoiceclient_details.DispatchDocumentNo, 
invoiceclient_details.Dated, 
invoiceclient_details.DispatchThrough, 
invoiceclient_details.Destination, 
invoiceclient_details.TermsofDelivery, 
invoiceclient_details.BuyerTin, 
invoice.id, 
invoice.DescriptionOfGoods, 
invoice.Quantity, 
invoice.PerUnitPrice, 
invoice.TotalPrice, 
invoice.VAT14, 
invoice.VAT5, 
invoice.ServiceTax, 
invoice.CST 
FROM invoiceclient_details,invoice 
WHERE MAX(invoiceclient_details.CId) = MAX(invoice.CId); 

卻是露出像

錯誤

+0

請您提供您正在尋找一個樣本輸出?無論如何聽起來你只是需要一個內部連接 –

+0

例如,我需要打印表1的數據,即發票(CId = 4)和表2,即invoiceclient_details(CId = 4),那麼查詢應該是? –

+0

正如答案中所建議的那樣,您只需要一個內部連接... yoy可能還需要使用參數添加where子句(首先需要在iReport中創建它) –

回答

0

試試這個

select * 
from invoice,invoiceclient_details 
where 
invoice.CId in (Select max(invoiceclient_details.CId) from invoiceclient_details) 
and 
invoiceclient_details.CId in (Select max(invoiceclient_details.CId) from invoiceclient_details) 
1

使用INNER JOIN「組功能的誤用」加入對錶CId

SELECT * 
FROM invoice i 
INNER JOIN invoiceclient_details icd ON i.CId = icd.CId 
+0

它從「發票」表中打印所有數據,即CId = 1和CId = 2和CId = 4。但我希望CId = 4從「發票」和「invoiceclient_details」 –

+0

WHERE i.CId = 4; ...或WHERE i.CId =(選擇max(Cid)FROM invoiceclient_details), –

+0

@PetterFriberg它的工作感謝你很多 –