2014-04-28 2 views
1

localhost에 코드 sql 코드를 작성했습니다 (XAMPP, phpmyadmin 4.1.6 사용). 완벽하게 작동합니다. 그러나 phpmyadmin 3.5.7을 사용하는 서버에 모든 것을 올리면 코드가 작동하지 않습니다. 나는 localhost와 server 모두에 동일한 데이터와 구조가 있다는 것을 확신한다. phpmyadmin sql 쿼리를 통해 서버에서 코드를 실행하면 # 1146 오류가 나타납니다. "solve.Invoice '테이블이 존재하지 않습니다."라는 메시지가 나타납니다. 버전의 버그입니까?php myadmin 3.5.7 # 1146 테이블이 존재하지 않습니다.

SELECT Com.CompanyName,IFNULL(SUM(InvIn.total),0) as SumOfTotal, IFNULL(SUM(inc.income),0) as SumOfIncome, IFNULL(SUM(InvIn.total),0)-IFNULL(SUM(inc.income),0) as difference 
FROM companies Com LEFT JOIN 
Invoice Inv ON Inv.CompaniesID=Com.ID JOIN 
InvoiceInput InvIn ON InvIn.InvoiceID=Inv.ID LEFT JOIN 
Income inc ON inc.companyID=com.ID 
GROUP BY Com.CompanyName 
ORDER BY SumofTotal desc 

테이블 송장 : http://i.stack.imgur.com/cxDu8.jpg

테이블 회사 : 여기

는 SQL 코드

http://i.stack.imgur.com/R1260.jpg

+0

테이블 invoiceinput : http://i.stack.imgur.com/7HpLQ.jpg 테이블 수입 : HTTP : //i.stack.imgur.com/8VbeT.jpg – funny

답변

1

내가 모든 총액에 대해 생각 ... 이 시도 :

SELECT com.CompanyName, IFNULL(SUM(InvIn.total) , 0) 
AS SumOfTotal, IFNULL(SUM(inc.income) , 0) 
AS SumOfIncome, IFNULL(SUM(InvIn.total) , 0) - IFNULL(SUM(inc.income) , 0) 
AS difference FROM companies com LEFT JOIN invoice Inv ON Inv.CompaniesID = com.ID 
JOIN invoiceinput InvIn 
ON InvIn.InvoiceID = Inv.ID 
LEFT JOIN income inc 
ON inc.companyID = com.ID 
GROUP BY com.CompanyName 
ORDER BY SumOfTotal DESC LIMIT 0 , 30 
1

COM 및 컴, 예를 사용하지 마십시오

FROM companies Com LEFT JOIN 
Income inc ON inc.companyID=com.ID