PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL, złożone zapytanie do obliczania składników według receptur

Wypróbuj

SELECT SUM(f.qty) used_times,
       COALESCE(i.ingr_code, f.food_code) code,
       COALESCE(i.name, f.name) name,
       SUM(COALESCE(i.qty, 1) * f.qty) qty,
       COALESCE(i.meas, f.meas) meas
  FROM usedfood f LEFT JOIN ingredients i
    ON f.food_code = i.food_code
 GROUP BY i.ingr_code, i.name

Wyjście:

| USED_TIMES | CODE |           NAME | QTY |  MEAS |
----------------------------------------------------
|          2 |  173 |        ketchup |   2 |   pcs |
|          2 | 1130 |    corned beef |  80 | gramm |
|          2 | 1135 |         laurel | 0.8 | gramm |
|          2 | 1136 |          clove |   2 | gramm |
|          2 | 1138 |         tomato | 160 | gramm |
|          3 | 1139 |        mustard |  15 | gramm |
|          3 | 1140 |      fresh egg | 150 | gramm |
|          8 | 1144 |           salt | 3.4 | gramm |
|          5 | 1256 | spaghetti rinf | 375 | gramm |
|          8 | 1258 |            oil | 362 | gramm |

Oto SQLFiddle demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawiaj dane w 3 tabelach jednocześnie za pomocą Postgres

  2. Oracle do PostgreSQL:składnia złączenia zewnętrznego ANSI w PostgreSQL

  3. Sortowanie elementów tablicy

  4. Błąd gniazda Postgresql w OSX 10.7.3 podczas uruchamiania syncdb Django

  5. PostgreSQL SHOW TABLES Odpowiednik (psql)