---
title: "Tröttsam uträkning..."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/157339-tröttsam-uträkning"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "CatZ"
published: "2007-02-18T22:41:55.000Z"
updated: "2007-02-21T20:54:20.000Z"
replies: 5
views: 486
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/157339-tröttsam-uträkning"
---

# Tröttsam uträkning...

## #1 — CatZ, 2007-02-18T22:41Z

Jag har en SP som jag inte lyckas få till som jag vill.

```
SELECT
	tblInvoice.InvoiceID, 
	tblInvoice.InvoiceNumber, 
	tblCustomers.Name AS Customer, 
	tblInvoice.EndDate, 
	dbo.LineTotal(tblInvoice.Km, tblInvoice.KmPrice, 0, tblInvoice.GST, 1) AS KMTotal, 
	SUM(dbo.LineTotal(tblProducts.Quantity, tblProducts.UnitPrice, 0, tblInvoice.GST, 1)) AS ProductTotal, 
	SUM(dbo.LineTotal(tblInvoiceDetails.Quantity, tblInvoice.HourPrice, 0, tblInvoice.GST, 1)) AS HourTotal
FROM 
	tblInvoice 
	LEFT OUTER JOIN tblProducts ON tblInvoice.InvoiceID = tblProducts.InvoiceID 
	LEFT OUTER JOIN tblInvoiceDetails ON tblInvoice.InvoiceID = tblInvoiceDetails.InvoiceID 
	INNER JOIN tblCustomers ON tblInvoice.CustomerID = tblCustomers.CustomerID
GROUP BY 
	tblInvoice.InvoiceID, 
	tblInvoice.InvoiceNumber, 
	tblCustomers.Name, 
	tblInvoice.EndDate, 
	dbo.LineTotal(tblInvoice.Km, tblInvoice.KmPrice, 0, tblInvoice.GST, 1)
ORDER BY 
	tblInvoice.InvoiceNumber DESC
```

Det går bra så länge jag bara har en rad i vardera av timmar och produkter så fort jag har två rader som knyts till en faktura så skrivs allting ut dubbelt. Vad gör jag för fel?

Om du kollar på bilderna kanske du förstår bättre vad jag försöker säga men inte hittar ord till ;)

Bilagor:

- [problemet.png](https://www.webforum.nu/a/13751.png)
- [problemet2.png](https://www.webforum.nu/a/13752.png)

Permalänk: https://www.webforum.nu/p/157339

## #2 — LarsG, 2007-02-19T13:25Z

Tillbaka till basen.

Ge exempel på datainnehåll och förväntat resultat.

Permalänk: https://www.webforum.nu/p/1935923

## #3 — CatZ, 2007-02-19T22:20Z

Detta får jag:

```
243	6	NULL	NULL	NULL
242	5	NULL	NULL	NULL
241	4	312,50	1000,00	1875,00
240	3	62,50	1,25	312,50
237	1	31,25	NULL	NULL
```

BoOch såhär vill jag att det ska bli: 

```
243	6	NULL	NULL	NULL
242	5	NULL	NULL	NULL
241	4	312,50	500,00	625,00
240	3	62,50	1,25	312,50
237	1	31,25	NULL	NULL
```

Så fort jag har mer en två rader i svaret som jag försöker slå ihop så blir det dubbelt har jag 3 rader som jag har på invoiceid 241 där finns det 3 rader, en med 200 en med 100 och ytterligare en med 100. då blir det 1875 istället för 625. Så länge jag bara har en rad i respektive tabell så går det bra.

Några idéer?

Permalänk: https://www.webforum.nu/p/1936060

## #4 — LarsG, 2007-02-20T17:30Z

Du får räkna ut de båda summorna var för sig och inte joina ihop allt.

Permalänk: https://www.webforum.nu/p/1936169

## #5 — CatZ, 2007-02-20T19:11Z

red.

Du menar att jag ska göra 3 olika SP av det hela och köra innifrån huvudfrågan något i stil med 

```
declare @InvoiceID as int
declare @HourTotal as money
@InvoiceID = (select InvoiceID from tblInvoice)

execute spGetHourTotals @InvoiceID, @HourTotal output
```

Var det så du tänkte eller kan man göra på något bättre sätt?

Permalänk: https://www.webforum.nu/p/1936190

## #6 — CatZ, 2007-02-21T20:54Z

```
SELECT
	tblInvoice.InvoiceID, 
	myHourTotal.HourTotal
FROM 
	tblInvoice
	LEFT OUTER JOIN 
	(
		SELECT 
			tblInvoice.InvoiceID, 
			SUM(dbo.LineTotal(tblInvoiceDetails.Quantity, tblInvoice.HourPrice, 0, tblInvoice.GST, 1)) AS HourTotal
		FROM 
			tblInvoice
			LEFT OUTER JOIN tblInvoiceDetails ON tblInvoice.InvoiceID = tblInvoiceDetails.InvoiceID
		WHERE 
			(tblInvoiceDetails.InvoiceID = tblInvoice.InvoiceID)
		GROUP BY
			tblInvoice.InvoiceID
	) AS myHourTotal
	ON tblInvoice.InvoiceID = myHourTotal.InvoiceID
GROUP BY 
	tblInvoice.InvoiceID, 
	myHourTotal.HourTotal
ORDER BY 
	tblInvoice.InvoiceID DESC
```

Jag kom på vad du menade LarsG, tack för sparken i rätt rumpa höll jag på att skriva men riktning menar jag! ;)

Permalänk: https://www.webforum.nu/p/1936478

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/157339-tröttsam-uträkning
