---
title: "Tariffer i prislista som ska kopplas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/136085-tariffer-i-prislista-som-ska-kopplas"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "wazid"
published: "2005-10-20T17:04:59.000Z"
updated: "2005-10-20T17:48:11.000Z"
replies: 1
views: 518
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/136085-tariffer-i-prislista-som-ska-kopplas"
---

# Tariffer i prislista som ska kopplas

## #1 — wazid, 2005-10-20T17:04Z

Hej

Jag brottas med en SQLfråga.
Jag har en tabell med en prislista OPRICL.
Det finns olika priser på en vara neroende på vilket antal man köper.
Jag har sedan en tabell, OSBSTD som innehåller en massa orderrader.
Nu vill jag samköra dessa tabeller och få ut priset på varje orderrad, beroende på antalet.
Jag försöker söka fram det genom att kolla antalet i orderraden dbo.OSBSTD.UCIVQT mot tariffen i prislistan q.OMQTYL.
Själva priset finns i OMSAPR.

Jag får dock inte till det riktigt i q
SELECT     (OMSAPR) ger en rad för varje tariffsteg i prislistan och ger mig dubletter.

SELECT    MAX (OMSAPR) ger alltid det högsta priset, oavsett antalet i orderraden.

SELECT    MIN (OMSAPR) ger ingen rad alls

```
SELECT    q.OMITNO, q.OMSAPR, q.OMPRRF, dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCITNO, dbo.OSBSTD.UCIVDT, dbo.OSBSTD.UCSUNO, 
                      dbo.OSBSTD.UCSAAM, dbo.OSBSTD.UCOFRA, dbo.OSBSTD.UCUCOS, dbo.OSBSTD.UCIVQT, q.OMQTYL
FROM         dbo.OPRICL q INNER JOIN
                      dbo.OSBSTD ON q.OMITNO = dbo.OSBSTD.UCITNO
GROUP BY q.OMITNO, q.OMSAPR, q.OMPRRF, dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCITNO, dbo.OSBSTD.UCIVDT, dbo.OSBSTD.UCSUNO, 
                      dbo.OSBSTD.UCSAAM, dbo.OSBSTD.UCOFRA, dbo.OSBSTD.UCUCOS, dbo.OSBSTD.UCIVQT, q.OMQTYL
HAVING      (q.OMSAPR IN
                          (SELECT     (OMSAPR)
                            FROM          dbo.OPRICL
                            WHERE      q.OMITNO = dbo.OPRICL.OMITNO AND q.OMPRRF = 'a1' AND q.OMQTYL <= dbo.OSBSTD.UCIVQT)) AND (dbo.OSBSTD.UCIVDT BETWEEN 
                      20050301 AND 20050331) AND (dbo.OSBSTD.UCITNO = '10990001')
ORDER BY dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCIVDT
```

Tacksam för tips....

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

## #2 — LarsG, 2005-10-20T17:48Z

```
SELECT  (select max(omsapr)
           from dbo.opricl
          where OMQTYL > dbo.OSBSTD.UCIVQT
            and OMITNO = dbo.OPRICL.OMITNO
            and q.OMPRRF = 'a1') price
  dbo.OSBSTD.UCCUNO, 
  dbo.OSBSTD.UCITNO, 
  dbo.OSBSTD.UCIVDT, 
  dbo.OSBSTD.UCSUNO, 
  dbo.OSBSTD.UCSAAM, 
  dbo.OSBSTD.UCOFRA, 
  dbo.OSBSTD.UCUCOS, 
  dbo.OSBSTD.UCIVQT 
FROM dbo.OSBSTD
where dbo.OSBSTD.UCIVDT BETWEEN 20050301 AND 20050331
AND dbo.OSBSTD.UCITNO = '10990001'
ORDER BY dbo.OSBSTD.UCCUNO, dbo.OSBSTD.UCIVDT
```

Varför 

```
where dbo.OSBSTD.UCIVDT BETWEEN 20050301 AND 20050331
```

?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/136085-tariffer-i-prislista-som-ska-kopplas
