2016-05-01 5 views
2

select文に問題があります。別のものを使用しているときは、それでも私には特定の行が重複しています。私はグループを使って重複を修正しようとしましたが、値の1つを削除しました。画像へmysql/php行の値をマージ/結合する

リンク:これは私が出力にそれを望むものである Group by and Distinct

:私はあなたが合計を使用して選択するべきだと思い

SELECT DISTINCT M.Major, 
     S.Ethnicity = 'American Indian or Alaska Native' AS AIAN, 
     S.Ethnicity = 'Asian' AS Asian, 
     S.Ethnicity = 'Black or African American' AS Black, 
     S.Ethnicity = 'Hispanic/Latino' AS Hisp, 
     S.Ethnicity = 'Native Hawaiian or Other Pacific Islander' AS Native, 
     S.Ethnicity = 'White' AS White, 
     S.Ethnicity = 'Unknown/Other' As Other 
FROM STUDENT AS S, MAJOR AS M 
WHERE S.Major_ID = M.MajorID and S.Gender = 'Female' 
Group By M.Major; 

STUDENT | 
    CREATE TABLE `STUDENT` (
    `StudentID` int(11) NOT NULL AUTO_INCREMENT, 
    `FirstName` char(35) NOT NULL, 
    `LastName` char(35) NOT NULL, 
    `DateOfBirth` date NOT NULL, 
    `SSN` char(11) NOT NULL, 
    `GGCEmail` varchar(100) NOT NULL, 
    `Gender` char(6) NOT NULL, 
    `Ethnicity` char(100) NOT NULL, 
    `IsGrad` char(3) NOT NULL, 
    `Major_ID` int(11) NOT NULL, 
    `Minor_ID` int(11) DEFAULT NULL, 
    `Timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    PRIMARY KEY (`StudentID`), 
    KEY `MAJOR_STUDENT_FK` (`Major_ID`), 
    KEY `MINOR_STUDENT_FK` (`Minor_ID`), 
    CONSTRAINT `MAJOR_STUDENT_FK` FOREIGN KEY (`Major_ID`) REFERENCES `MAJOR` (`MajorID`), 
    CONSTRAINT `MINOR_STUDENT_FK` FOREIGN KEY (`Minor_ID`) REFERENCES `MINOR` (`MinorID`) 

MAJOR | 
CREATE TABLE `MAJOR` (
    `MajorID` int(11) NOT NULL AUTO_INCREMENT, 
    `Major` char(100) NOT NULL, 
    `EntryGPA` decimal(3,2) NOT NULL, 
    PRIMARY KEY (`MajorID`) 
+0

お願いします。あなたの学生とメジャーテーブルのスキーマ – scaisEdge

+0

あなたは間違ったsintaxを持っているようです.. .. S.Ethnicity = 'アメリカインディアンまたはアラスカネイティブ' AS ... = S.Ethnicityの後ろの意味?私はこのsintaxを見たことがありません。 – scaisEdge

+0

は、特定のメジャーの各民族を数えるために、S.Ethnicity = '___'を使用して、スキーマを投稿しました。 – Onik92

答えて

0

Solution

が、これは私のコードですケース

SELECT DISTINCT M.Major, 
     sum(case S.Ethnicity when 'American Indian or Alaska Native' then 1 else 0 END) AS AIAN, 
     sum(case S.Ethnicity when 'Asian' then 1 else 0 END) AS Asian, 
     sum(case S.Ethnicity when 'Black or African American' then 1 else 0 END) AS Black, 
     sum(case S.Ethnicity when 'Hispanic/Latino' then 1 else 0 END) AS Hisp, 
     sum(case S.Ethnicity when 'Native Hawaiian or Other Pacific Islander' then 1 else 0 END) AS Native, 
     sum(case S.Ethnicity when 'White' then 1 else 0 END) AS White, 
     sum(case S.Ethnicity when 'Unknown/Other' then 1 else 0 END) As Other 
    FROM STUDENT AS S, MAJOR AS M 
    WHERE S.Major_ID = M.MajorID and S.Gender = 'Female' 
    Group By M.Major; 
+0

このコードでは、エラーが発生しました:ERROR 1630(42000):FUNCTION DB.sumが存在しません。リファレンスマニュアルの「ファンクション名の解析と解決」セクションを確認してください – Onik92

+0

sumと..の間に2つのスペースがあります。私は答えを更新しました – scaisEdge

+0

OK。エラーを検索した後に動作するようにしましたthanks – Onik92

関連する問題