Avatar billede tigertool Nybegynder
08. august 2004 - 23:08 Der er 1 løsning

Stored procedure nødvendig?

Jeg har følgende tabeller:
deb_faktura (fakturaid,debid,dato,username,payment)
deb_faktura_lines (fakturaid,productid,price,qty)
deb_payments (debid,dato,price,comment)

Jeg skal have lavet en stored procedure (eller?) der kan lave en oversigt over en kundekonto. Altså der skal tages et debid med i kaldet.

Resultatet skal være som følgende:

dato,comment,price

Der skal hentes udfra alle tre tabeller. Når der hentes fra deb_faktura skal dato(retur) være dato, comment(retur) skal være "Faktura " + fakturaid og price(retur) skal være summen af købet. Summen kan findes på denne måde:

SELECT sum(price * qty) FROM deb_faktura_lines WHERE fakturaid = 10; (<- Eks)

Når der hentes fra deb_payments siger det sig selv hvad der skal hentes. Der skal sorteres efter dato (dato er af datatypen date).

Hvordan gøres dette? Der skal vel bruges UNION for at få udkast fra 2 tabeller, men jeg kan ikke lige se hvordan jeg skal få flettet den price-sum på fakturaen ud. Kunne det være en mulighed med en trigger på deb_faktura ellers?
Avatar billede tigertool Nybegynder
08. august 2004 - 23:33 #1
Jeg fandt selv løsningen:

CREATE PROCEDURE account
RETURNS (
    DATO DATE,
    COMMENT VARCHAR (60),
    PRICE DECIMAL (1, 1))
AS
declare variable total integer;
BEGIN
  for
  select dato,fakturaid,(SELECT sum(price * qty) FROM deb_faktura_lines WHERE deb_faktura_lines.fakturaid = deb_faktura.fakturaid) from deb_faktura
  union
  select dato,debid,price from deb_payments into dato,comment,total
  do
    begin
        price = total * 1.25;
      SUSPEND;
    end
end

MEN fuck det var ikke så let :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester