2014-12-11 3 views
-1

중요한 항목의 총계와 그 목록 아래에 페이지 총계 위에 표시하고 싶습니다. 이것은 중요한 항목에는 총 5 개 항목 어떻게 내가 합계를받을 수 있나요 중요하다 즉 없습니다이Count 열의 합계를 얻으십시오

vessel_name CallSign Critical_Items 
----------- -------- ---------------- 
Sima Sadaf (NULL)     4 
sdare  3q1      1 

내가 페이지의 상단에 표시 할 출력을입니다

SELECT vs.vessel_name, vs.CallSign ,COUNT(IF(m.AvailableQuant <= m.MinQuant,1, NULL)) AS 'Critical'     
FROM tbl_vesselmaster vs 
INNER JOIN comp_login cl ON vs.co_id = cl.id 
INNER JOIN m_shipinv m ON vs.id = m.ShipId 
WHERE vs.co_id=123 
GROUP BY vs.id, vs.vessel_name ; 

내 쿼리입니까?

+2

귀하의 PHP 스크립트에서 합계를 확인하십시오. 아니에요 SQL. – Jens

+0

@Jens 이것은 데이터베이스의 열이 아닙니다. 어떻게 그것이 PHP에서 할 수 있습니다. 코드를 가지고 설명 할 수 있습니까 –

+1

PHP 스크립트에서'Critical'의 값을 세어 봐야합니다. – Jens

답변

0

쿼리는 당신에게 중요한 항목의 합을 반환 아래 :

SELECT SUM(IF(m.AvailableQuant <= m.MinQuant,1, 0)) as total FROM tbl_vesselmaster vs 
    INNER JOIN comp_login cl ON vs.co_id = cl.id 
    INNER JOIN m_shipinv m ON vs.id = m.ShipId 
    WHERE vs.co_id=123; 
+0

고마워요. 작동했습니다 : D –

0
SELECT COUNT(IF(m.AvailableQuant <= m.MinQuant,1, NULL)) AS 'Critical'     
FROM tbl_vesselmaster vs 
INNER JOIN comp_login cl ON vs.co_id = cl.id 
INNER JOIN m_shipinv m ON vs.id = m.ShipId 
WHERE vs.co_id=123 

당신에게 모든 중요한 항목 나는 당신은 당신의 기존 쿼리에 총을 원하는 희망

0

..

을 제공한다을
select sum(Critical) as Total from(
SELECT vs.vessel_name, vs.CallSign ,COUNT(IF(m.AvailableQuant <= m.MinQuant,1, NULL)) AS Critical     
FROM tbl_vesselmaster vs 
INNER JOIN comp_login cl ON vs.co_id = cl.id 
INNER JOIN m_shipinv m ON vs.id = m.ShipId 
WHERE vs.co_id=123 
GROUP BY vs.id, vs.vessel_name)alias; 
0

이런?

select sum(d.Critical) from (SELECT vs.vessel_name, vs.CallSign ,COUNT(IF(m.AvailableQuant <= m.MinQuant,1, NULL)) AS 'Critical'     
FROM tbl_vesselmaster vs 
INNER JOIN comp_login cl ON vs.co_id = cl.id 
INNER JOIN m_shipinv m ON vs.id = m.ShipId 
WHERE vs.co_id=123 
GROUP BY vs.id, vs.vessel_name)d 
0

WITH ROLLUP을 사용하면 여분의 총계를 얻을 수 있습니다. 그런 다음 먼저 전화 번호를 얻고 호출 부호에 null을 표시하십시오.

SELECT 
    vessel_name, 
    case when vessel_name is not null then CallSign end as CallSign, 
    Critical 
FROM 
(
    SELECT 
    vs.vessel_name, 
    vs.CallSign, 
    SUM(m.AvailableQuant <= m.MinQuant) AS Critical 
    FROM tbl_vesselmaster vs 
    INNER JOIN comp_login cl ON vs.co_id = cl.id 
    INNER JOIN m_shipinv m ON vs.id = m.ShipId 
    WHERE vs.co_id=123 
    GROUP BY vs.id WITH ROLLUP 
) AS vessels 
ORDER BY (vessel_name IS NOT NULL), vessel_name; 
+0

오류 코드 : 1248 파생 테이블마다 고유 한 별칭이 있어야합니다. –

+0

아 맞습니다. MySQL (대부분의 dbms)에는 파생 테이블의 이름이 필요합니다. 지금 편집하겠습니다. –

+0

오류 코드 : 1064 SQL 구문에 오류가 있습니다. 'IS NOT NULL vessel_name 근처에서 사용할 정확한 구문은 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. vessel_name LIMIT 0, 1000'at line 17 –

관련 문제