Product table

billtran table

Tutaj, w tablicy billtran, productid = 1 jest powtarzane dwukrotnie

Chcę znaleźć sum(billtran.quantity) każdego identyfikatora produktu osobno

I want this output,the out expected my me is

Wybierz Zapytanie1:

 select name,billtran.quantity from product inner join billtran on product.id=billtran.productid where product.id in(select id from product)

Output of select query1

-2
Omkar Ghurye 3 kwiecień 2020, 09:11

3 odpowiedzi

Najlepsza odpowiedź

Za komentarz:

select name, SUM(billtran.quantity) from product inner join billtran on product.id=billtran.productid where product.id in(select id from product)
GROUP BY NAME

Moje dodatki w czapkach

Uwaga: where product.id in(select id from product) jest całkowicie bezużyteczną klauzulą where i należy ją usunąć. Zapytania nie muszą mieć klauzuli where i nie potrzebują takiej, która mówi, że identyfikator tabeli powinien znajdować się we wszystkich identyfikatorach w tej tabeli (zawsze prawda)

Dlatego napisałbym ten jako:

SELECT
  p.name,
  SUM(b.quantity) as sumof_quantity
FROM 
  product p
  INNER JOIN billtran b ON p.id=b.productid 
GROUP BY 
  p.name
1
Caius Jard 3 kwiecień 2020, 13:03

Przede wszystkim musisz uzyskać sumę ilości zgodnie z product_id

SELECT  product.name, SUM(billtran.quantity) AS value_sum 
    FROM billtran inner join product on product.id= billtran.product_id where product.id in(select id from product ) 
    GROUP BY product_id;

To będzie wynik:

name    quantity
abc      6
xyz      1
pqt      3

Możesz uzyskać ten sam wynik, grupując również product.name:

SELECT  product.name, SUM(billtran.quantity) AS value_sum 
FROM billtran inner join product on product.id=billtran.product_id where product.id in(select id from product) 
GROUP BY  product.name;
1
Martijn Pieters 7 październik 2020, 10:29

Bardzo proste zapytanie. Pls sprawdź poniżej: wybierz nazwę produktu, sumę (billtran.quantity) z połączenia wewnętrznego produktu billtran na product.id = grupa billtran.productid według billtran.productid

1
Rekha Kalasare 3 kwiecień 2020, 10:35