2014-05-09 3 views
-1

예 제목과 함께 몇 가지 항목이 있지만 실제로 모든 내용을 읽었으며 문제를 해결할 수 없음을 알고 있습니다. http://www.sqlfiddle.com/#!2/0aaf72/1sql이 여러 테이블에 합류했습니다.

그래서 나는이 같은 결과를 원하는 : 내가 sqlfiddle에 표시되는 SQL 테이블이 나는 모든 데이터는 결과가되고 싶어요 의미 enter image description here

을,하지만 내가 얻을 모든 데이터입니다 대신 시리즈의 목록의 NULL이 작성된 것입니다 ... 여기에 내가 뭘하려 :

SELECT sum(invoiceinput.total) as cons, 
    materialtype.`type`, 
     materialserie.serie, 
     companies.companyName 
     FROM invoiceinput JOIN 
     invoice ON invoiceinput.invoiceID=invoice.ID JOIN 
     companies ON companies.ID=invoice.companiesID JOIN 
     materialtype ON materialtype.ID=invoiceinput.materialTypeID LEFT JOIN 
     materialserie ON materialserie.ID=invoiceinput.materialTypeID 
     WHERE invoiceinput.materialTypeID 
     GROUP BY materialtype.ID, materialserie.ID, companies.ID, MONTH(21/04/2014) 
     ORDER BY MONTH(21/04/2014), companies.ID 
+0

위와 같은 결과를 얻기 위해 샘플 데이터로 sqlfiddle를 갱신 할 수 있습니까? – Dave

+0

@Dave 미안해 내가 처리 할 수 ​​없어서 죄송합니다. – funny

+0

내가 말한 이유는 그것이 이해하기 어려워지기 때문에 그가 http://www.sqlfiddle.com/#!3/d41d8/7868/0에 어떻게 거주했는지 생각해보십시오. 당신이 그것을 추가 할 수있는 경우에 응답을 얻는 기회는 더 많은 것이다. 그러나 나는 또한 데이터없이 시도 할 것이다. – Dave

답변

-1
SELECT sum(invoiceinput.total) as cons, 
    materialtype.`type`, 
     materialserie.serie, 
     companies.companyName 
     FROM invoiceinput JOIN 
     invoice ON invoiceinput.invoiceID=invoice.ID JOIN 
     companies ON companies.ID=invoice.companiesID JOIN 
     materialtype ON materialtype.ID=invoiceinput.materialTypeID LEFT JOIN 
     materialserie ON materialserie.ID=invoiceinput.materialserieID 
     WHERE invoiceinput.materialTypeID 
     GROUP BY materialtype.ID, materialserie.ID, companies.ID, MONTH(21/04/2014) 
     ORDER BY MONTH(21/04/2014), companies.ID 

그래서 materialserie ON materialserie.ID = invoiceinput.materialserieID 대신에 물질이 있어야한다 erie ON materialserie.ID = invoiceinput.materialTypeID

관련 문제