0
를 사용하여 MySQL의 테이블에서 필드의 합을 받기 전이 내, 데이타베이스에서 다음 표 .. 여기 쿼리
CREATE TABLE IF NOT EXISTS `client` (
`CARD_NO` varchar(15) NOT NULL,
`F_NAME` varchar(20) NOT NULL,
`L_NAME` varchar(20) NOT NULL,
`SEX` varchar(5) NOT NULL,
`DOB` date NOT NULL,
`SUBCITY` varchar(10) NOT NULL,
`KEBELE` varchar(5) NOT NULL,
`HOUSE_NO` varchar(10) NOT NULL,
`TEL_NO` int(10) DEFAULT NULL,
`REGION_NO` varchar(10) DEFAULT NULL,
PRIMARY KEY (`CARD_NO`),
KEY `REGION_NO` (`REGION_NO`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `client`
--
INSERT INTO `client` (`CARD_NO`, `F_NAME`, `L_NAME`, `SEX`, `DOB`, `SUBCITY`, `KEBELE`, `HOUSE_NO`, `TEL_NO`, `REGION_NO`) VALUES
('1', '', '', 'male', '0000-00-00', '', '', '', NULL, '01'),
('2', '', '', 'male', '0000-00-00', '', '', '', NULL, '02'),
('3', '', '', 'femal', '0000-00-00', '', '', '', NULL, '03'),
('4', '', '', 'femal', '0000-00-00', '', '', '', NULL, '04'),
('5', '', '', 'male', '0000-00-00', '', '', '', NULL, '05'),
('6', '', '', 'male', '0000-00-00', '', '', '', NULL, '05');
-- --------------------------------------------------------
--
-- Table structure for table `non_pregnant`
--
CREATE TABLE IF NOT EXISTS `non_pregnant` (
`VCT_CODE` varchar(15) NOT NULL,
`CARD_NO` varchar(15) DEFAULT NULL,
`RISK_OF_HIV` varchar(30) NOT NULL,
`PURPOSE` varchar(10) NOT NULL,
PRIMARY KEY (`VCT_CODE`),
KEY `CARD_NO` (`CARD_NO`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `non_pregnant`
--
INSERT INTO `non_pregnant` (`VCT_CODE`, `CARD_NO`, `RISK_OF_HIV`, `PURPOSE`) VALUES
('1', '1', '', ''),
('2', '2', '', ''),
('3', '3', '', ''),
('4', '4', '', ''),
('5', '5', '', ''),
('6', '6', '', '');
-- --------------------------------------------------------
--
-- Table structure for table `non_pregnant_vct`
--
CREATE TABLE IF NOT EXISTS `non_pregnant_vct` (
`VCT_CODE` varchar(15) NOT NULL DEFAULT '',
`DATE_TESTED` date DEFAULT NULL,
`TB_RESULT` varchar(10) NOT NULL,
`HIV_RESULT` varchar(10) NOT NULL,
`STD_RESULT` varchar(10) NOT NULL,
PRIMARY KEY (`VCT_CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `non_pregnant_vct`
--
INSERT INTO `non_pregnant_vct` (`VCT_CODE`, `DATE_TESTED`, `TB_RESULT`, `HIV_RESULT`, `STD_RESULT`) VALUES
('1', NULL, '', 'pos', ''),
('2', NULL, '', 'pos', ''),
('3', NULL, '', 'neg', ''),
('4', NULL, '', 'neg', ''),
('5', NULL, '', 'neg', ''),
('6', NULL, '', 'pos', '');
-- --------------------------------------------------------
--
-- Table structure for table `region`
--
CREATE TABLE IF NOT EXISTS `region` (
`REGION_NO` varchar(10) NOT NULL,
`REGION_NAME` varchar(10) NOT NULL,
PRIMARY KEY (`REGION_NO`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- Dumping data for table `region`
--
INSERT INTO `region` (`REGION_NO`, `REGION_NAME`) VALUES
('01', 'washington'),
('02', 'newyork'),
('03', 'london'),
('04', 'paris'),
('05', 'burlin');
내가 출력으로 원하는 것입니다 ..
지역 여성 남성 총 테스트 긍정적 인 테스트 긍정적 인 테스트,691 363,210 긍정적 인
이것은 내가 그것을 알아 내려고 시도했지만 STIL 쿼리입니다 리터 잘못 ... 당신이 원하는 출력의
SELECT r.region_name, c.sex = 'male' as counting, c.sex = 'femal' as counting, v.hiv_result = 'pos' as MalePos from region r
left join client c
on c.region_no = r.region_no
left join non_pregnant p
on c.card_no = p.card_no
left join non_pregnant_vct v
on p.vct_code = v.vct_code
group by c.region_no;
어떤 오류 메시지가 나타납니다? – Sebastian
당신은 어떤 결과물을 얻고 있습니까? 무엇이 옳은 것과 비교 되는가? 당신은 정교하게 여기에 우리에게 도움을 줄 수 있습니다. –
호기심에서 성별에 대한 추가 varchar가 실제로 그렇게 비쌉니까? ("femal"이 이상하게 보임) – BobbyShaftoe