MySQL выводит значения из разных строк - PullRequest
0 голосов
/ 03 июня 2019

Я работаю над SQL и есть 4 различных столбца, которые pname, Fname, Flastname и сумму. Это дает правильные выходные данные для pname и суммы, но fname и flastname из разных строк, которые не связаны с количеством и pname. В результате запроса должен быть выведен следующий вопрос: найдите на веб-сайте имена фермеров, которые больше всего продают каждый продукт.

У меня есть 2 атрибута, которые являются фермерами и покупателями:

buys: 
    Fname;Flastname;pname;mname;maddress;amount;creditcard;
    Cevdet;Sututan;Grain;Bim;Ilginc sk;18000;1230000000000010;
    Cevdet;Sututan;Soy bean;Migros;Zengin Mh;5000;1230000000000050;
    Halime;Sututan;Grain;Bim;Cikmaz Sk;1000;1230000000000340;
    Muhammer;Kanzuk;Soy bean;Migros;Zengin Mh;34000;1230000000002400;
    Gulden;Kanzuk;Grain;Tansas;Seftali Mh;1000;1230000000016810;
    Gulden;Kanzuk;Soy bean;KIPA;Boyoz Sk;7000;1230000000117650;



farmers:
    name;lastname;address;zipcode;city;phones;e-mails
    Cevdet;Sututan;14 Cikmaz Sk;42050;Konya;5352223444;cevdet@sucu.com
    Halime;Sututan;14 Cikmaz 
    Sk;42050;Konya;5356823445|5352223456;halime@sucu.com
    Muhammer;Kanzuk;16 Genis 
    Sk;34052;Istanbul;5352223446;muhammer@sucu.com
    Gulden;Kanzuk;16 Genis 
    Sk;34052;Istanbul;5352223447;gilden@sucu.com|gilden2@sucu.com
    Murat;Kanzuk;16 Genis Sk;34052;Istanbul;5352223448;asd@sucu.com





expected output:
        Grain;Hanedan;Gercek
        Soy bean;Muhammer;Kanzuk
        Rice;Behcet;Karci
        Corn;Deniz;Suadiyeli

мой код sql ниже:

        ``` 
                Select B.pname, B.Fname, B.Flastname, max(B.amount)
                from buys B,
                     farmers F
                where (B.Flastname=F.lastname and F.name = B.Fname) 
                group by B.pname ;
       ```

1 Ответ

1 голос
/ 03 июня 2019

Получите максимальную сумму за продукт в подзапросе и присоединитесь к этому запросу

SELECT b.pname, Fname, Flastname, max_amount
FROM buys b
JOIN (SELECT pname, MAX(amount) AS max_amount FROM buys GROUP BY pname) m ON m.pname = b.pname AND m.max_amount = b.amount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...