Mysliloitsuja raportteja varten

Started by Mihail, 10.09.11 - klo:20:00

Previous topic - Next topic

Mihail

Rakastan raportteja, joten tein muutamat mysliloitsut laskutusyhteenvetojen laskemiseen. Jaan ne tänne, sillä toivon, että nämä queryt helpottavat raporttitoiminnallisuuden kehitystä ja johtavat parempien raporttien integroimiseen osaksi Vllaskua.

yksittäiset laskut asiakaskohtaisesti näyttäen yksittäiset laskut, laskurivien määrän ja laskun summat

SELECT vllasku_company.company_name,
vllasku_company.street_address,
vllasku_company.city,
vllasku_company.zip_code,
vllasku_company.billing_address,
vllasku_invoice.invoice_no,
vllasku_invoice.invoice_date,
count(vllasku_invoice_row.id) AS laskurivit,
sum(vllasku_invoice_row.pcs*vllasku_invoice_row.price) AS hinta
FROM vllasku_company INNER JOIN vllasku_invoice ON vllasku_company.id = vllasku_invoice.company_id
INNER JOIN vllasku_invoice_row ON vllasku_invoice_row.invoice_id = vllasku_invoice.id
LEFT OUTER JOIN vllasku_product ON vllasku_invoice_row.product_id = vllasku_product.id
GROUP BY vllasku_invoice.invoice_no
ORDER BY vllasku_company.company_name ASC, vllasku_invoice.invoice_date ASC


Laskutusyhteenveto asiakaskohtaisesti, laskujen määrät ja yhteissummat
SELECT vllasku_company.company_name,
vllasku_company.street_address,
vllasku_company.zip_code,
vllasku_company.city,
vllasku_company.billing_address,
count(distinct(vllasku_invoice.invoice_no)) AS laskut,
sum(vllasku_invoice_row.pcs*vllasku_invoice_row.price) AS hinta
FROM vllasku_company INNER JOIN vllasku_invoice ON vllasku_company.id = vllasku_invoice.company_id
INNER JOIN vllasku_invoice_row ON vllasku_invoice_row.invoice_id = vllasku_invoice.id
LEFT OUTER JOIN vllasku_product ON vllasku_invoice_row.product_id = vllasku_product.id
GROUP BY vllasku_company.company_name
ORDER BY hinta DESC


Kyselyt vaikuttavat toimivan omassa Vllaskussani, en kuitenkaan ole SQL-asiantuntija, joten kyselyiden rakenteessa voi olla toivomisen varaa

Ere Maijala

Kiitoksia näistä, hyviä ajatuksia raporttien kehittämiseksi. En nyt varsinaisesti käynyt läpi kyselyjä, mutta yksi pikainen huomio: kannattaa groupata vllasku_invoice.id:n mukaan eikä vllasku_invoice.invoice_no:n mukaan. Jälkimmäinen ei ole välttämättä yksilöivä (esim. kahdella eri laskuttajalla voi olla sama laskunumero). Lisäksi deleted-kenttä olisi hyvä huomioida kyselyissä, muuten mukaan tulevat myös poistetut tietueet.

--Ere