Gå til innhold

Anbefalte innlegg

Hei!

Jeg holder på å lage en oppskriftsdatabase og en lagret prosedyre skal regne om ingredienssmengdene etter antall porsjoner. Resultatet lagres i en temporær tabell. Utskriften skal være som følger:

X porsjoner av retten y blir som følger: og deretter de nye mengdene av hver ingrediens. Problemet mitt er at hvis jeg kjører det i en spørring så vil teksten "x porsjoner av retten y" stå fremfor hver indgrediens. Kan ikke finne noen eksempler på dette i lærebøkene heller. Er det noen som har noen gode ideer til hvordan det kan løses?

Endret av Tingelingen
Lenke til kommentar
Videoannonse
Annonse

Jeg mente jeg burde lage en temporær tabell i og med at jeg måtte regne porsjonene i to omganger, men det er mulig at det er enklere å løse på en annen måte. Iallefall så berenger den porsjonene helt riktig, det er bare måten det fremstilles på som jeg klusser med.

Som sagt så skal outputen være slik f.eks:

4 porsjoner av retten y blir som følger:

400 g kjøttdeig

1 løk

osv

 

Prosedyren er slik nå:

create procedure regne_om_porsjoner

@Antallporsjoner int,

@oppskriftsid int

as

begin

 

create table #holdoutput

(oppskriftsid int,

antall float,

enhet varchar (50),

råvare varchar (50))

 

INSERT #holdoutput

SELECT O.id, I.antall/O.porsjoner, E.navn, RÅ.navn

FROM Ingrediens I JOIN Oppskrift O

ON I.oppskrifts_id = O.id

JOIN Råvare RÅ

ON I.råvare_id = RÅ.id

JOIN Enhet E

ON E.id = I.enhet_id

where O.id = @oppskriftsid

 

declare @oppskriftsnavn varchar (50)

set @oppskriftsnavn = (SELECT navn FROM oppskrift where id = @oppskriftsid)

 

UPDATE #holdoutput

SET antall = antall * @antallporsjoner

SELECT CAST (@antallporsjoner as varchar) + ' ' - ' porsjoner av retten' + Rtrim (@oppskriftsnavn)+ 'blir' + CAST(antall as varchar) + ' ' + RTRIM(enhet) + ' ' + råvare

FROM #holdoutput

 

END

Endret av Tingelingen
Lenke til kommentar

Jeg synes du blander presentasjon og datauthenting.

Det du prøver er å la databaseserveren generere den nøyaktige teksten som skal presenteres. Det er helt unødvendig. Databaseserveren skal ikke å formattere teksten.

La databaseserveren returnere grunndataene, og så kan klienten (webserveren, win-app eller hva det nå er) formattere og presentere disse dataene.

Lenke til kommentar

Jo jeg er enig i det. Grunnen til at jeg vil ha det presentert slik er at det er en oppgave i et T-SQL kurs hvor vi ikke programmerer mot en applikasjon og hvor deler av oppgaven er at man skal presentere det slik. Men vanligvis ville nok en applikasjon ta seg av det.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...