2014-03-18, 10:35
  #1
Medlem
Hej!

Har kört en Query, får följande resultat:

prodno Beskrivelse Datum Antal Totaltantal
001100 Tätningslist L=1050 mm 20130530 1 1 2.000000 207.000000
001100 Tätningslist L=1050 mm 20131001 1 1 2.000000 207.000000
001100 Tätningslist L=1050 mm 20130910 1 1 2.000000 207.000000
001100 Tätningslist L=1050 mm 20130910 1 1 2.000000 207.000000

saken är den att jag vill bara få en rad som resultat, helt ointressant med Antal kolonnen, det
är totalt antal jag vill se:

001100 Tätningslist L=1050 mm 20130530 1 1 2.000000 207.000000

Hur kan man välja bort att inte visa fyra rader i resultatet och bara 1 ?
__________________
Senast redigerad av arvikaoslo 2014-03-18 kl. 10:39.
Citera
2014-03-18, 13:03
  #2
Medlem
Protons avatar
Citat:
Ursprungligen postat av arvikaoslo
Hej!

Har kört en Query, får följande resultat:

prodno Beskrivelse Datum Antal Totaltantal
001100 Tätningslist L=1050 mm 20130530 1 1 2.000000 207.000000
001100 Tätningslist L=1050 mm 20131001 1 1 2.000000 207.000000
001100 Tätningslist L=1050 mm 20130910 1 1 2.000000 207.000000
001100 Tätningslist L=1050 mm 20130910 1 1 2.000000 207.000000

saken är den att jag vill bara få en rad som resultat, helt ointressant med Antal kolonnen, det
är totalt antal jag vill se:

001100 Tätningslist L=1050 mm 20130530 1 1 2.000000 207.000000

Hur kan man välja bort att inte visa fyra rader i resultatet och bara 1 ?
För att få ut distinkta resultat(dvs endast unika rader) använder man nyckelordet DISTINCT:
[PHP]SELECT DISTINCT prodno, Beskrivelse, Datum, Antal, Totaltantal FROM myTable[/PHP]Prova den så får vi se vad som händer.
Citera
2014-03-18, 13:11
  #3
Medlem
SELECT DISTINCT OH.R1 AS Avdelning, OH.LstInvDt AS Fakturadatum, OH.InvoNo AS FakturaNr,OH.DelActNo AS Leveresaktnr,OH.DelNm AS Levererasnamn,
AC.EANLocCd AS EANLOCNr,AC.Ad1 AS LevererasAdresse,DelPNo AS LeverasPostnummer,OL.ProdNo AS Produktnummer,P.PrCatNo6 AS Prodkategori,PC.Descr AS Produktkategori,
OL.InvoSF AS Fakturertbelop,

SUM(OL.InvoSF)over (PARTITION BY P.PrCatNo6,OH.InvoNo) AS totalpris

FROM [F0001].[dbo].[OrdLn]AS OL
join dbo.Ord OH on OH.OrdNo = OL.OrdNo
join dbo.Prod P on P.ProdNo = OL.ProdNo
join dbo.ProdCat PC on PC.PrCatNo = P.PrCatNo6
join dbo.Actor AC on OH.DelActNo = AC.ActNo


where OL.InvoSF > 1 AND OH.LstInvDt >= 20140301 AND OH.R1 >=800 AND OH.R1 <=875
ORDER BY OH.InvoNo DESC,P.PrCatNo6
go



Hjälpte inte mycket det inte, kan det vara för att jag har en sju tusan till många Select??
Citera
2014-03-18, 14:16
  #4
Medlem
Protons avatar
Citat:
Ursprungligen postat av arvikaoslo
SELECT DISTINCT OH.R1 AS Avdelning, OH.LstInvDt AS Fakturadatum, OH.InvoNo AS FakturaNr,OH.DelActNo AS Leveresaktnr,OH.DelNm AS Levererasnamn,
AC.EANLocCd AS EANLOCNr,AC.Ad1 AS LevererasAdresse,DelPNo AS LeverasPostnummer,OL.ProdNo AS Produktnummer,P.PrCatNo6 AS Prodkategori,PC.Descr AS Produktkategori,
OL.InvoSF AS Fakturertbelop,

SUM(OL.InvoSF)over (PARTITION BY P.PrCatNo6,OH.InvoNo) AS totalpris

FROM [F0001].[dbo].[OrdLn]AS OL
join dbo.Ord OH on OH.OrdNo = OL.OrdNo
join dbo.Prod P on P.ProdNo = OL.ProdNo
join dbo.ProdCat PC on PC.PrCatNo = P.PrCatNo6
join dbo.Actor AC on OH.DelActNo = AC.ActNo


where OL.InvoSF > 1 AND OH.LstInvDt >= 20140301 AND OH.R1 >=800 AND OH.R1 <=875
ORDER BY OH.InvoNo DESC,P.PrCatNo6
go



Hjälpte inte mycket det inte, kan det vara för att jag har en sju tusan till många Select??
Njäe, det är troligen något annat då, men vi får väl ta till en liten hack. Vad händer här nurå?

[PHP]
SELECT DISTINCT tbl.Avdelning, tbl.Fakturadatum, tbl.FakturaNr, yada yada
FROM
(
SELECT OH.R1 AS Avdelning, OH.LstInvDt AS Fakturadatum, OH.InvoNo AS FakturaNr,OH.DelActNo AS Leveresaktnr,OH.DelNm AS Levererasnamn,
AC.EANLocCd AS EANLOCNr,AC.Ad1 AS LevererasAdresse,DelPNo AS LeverasPostnummer,OL.ProdNo AS Produktnummer,P.PrCatNo6 AS Prodkategori,PC.Descr AS Produktkategori,
OL.InvoSF AS Fakturertbelop,

SUM(OL.InvoSF)over (PARTITION BY P.PrCatNo6,OH.InvoNo) AS totalpris

FROM [F0001].[dbo].[OrdLn]AS OL
join dbo.Ord OH on OH.OrdNo = OL.OrdNo
join dbo.Prod P on P.ProdNo = OL.ProdNo
join dbo.ProdCat PC on PC.PrCatNo = P.PrCatNo6
join dbo.Actor AC on OH.DelActNo = AC.ActNo


where OL.InvoSF > 1 AND OH.LstInvDt >= 20140301 AND OH.R1 >=800 AND OH.R1 <=875
ORDER BY OH.InvoNo DESC,P.PrCatNo6
)tbl
[/PHP]

Btw, distinct jämför alla ingående attribut i resultatet, så är det en rad som har en endaste skillnad kommer den komma med. Vad händer nurå?
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in