Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Slå ihop två SQL-satser till en....

Postades av 2003-08-23 12:48:06 - Fredrik Henrysson, i forum asp - allmänt, Tråden har 8 Kommentarer och lästs av 974 personer

Hej,

Jag undrar om det är möjligt att slå ihop följande två SQL satser till en.

<code>SELECT Leveransdatum, Kundnr, COUNT(Orderrader.Artnr) AS Antal_artiklar_artikelgrupp100 FROM Orderhuvud, Orderrader WHERE Orderhuvud.ordernr = Orderrader.ordernr AND Orderrader.Artikelgrupp = 100 GROUP BY Orderrader.Leveransdatum, Orderhuvud.Kundnr</code>

<code>SELECT Orderrader.Leveransdatum, Orderhuvud.Kundnr, COUNT(Orderrader.Artnr) AS Antal_artiklar_artikelgrupp200 FROM Orderhuvud, Orderrader WHERE Orderhuvud.ordernr = Orderrader.ordernr AND Orderrader.Artikelgrupp = 200 GROUP BY Orderrader.Leveransdatum, Orderhuvud.Kundnr</code>

Orderhuvudet innhåller 1 post per ordernummer.
Orderrader innehåller varierande antal poster beroende hur många rader det är på ordern.

Det jag vill göra är att räkna hur många orderrader varje kund har per leveransdatum i respektive artikelgrupp.

Artikelgrupperna heter 100 och 200.

Mvh
//Fredrik


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 10:15:22 - Johan Microsoft

Hej Fredrik!

I den situation du beskriver verkar det som det bästa alternativet att använda sig av subqueries. Ett exempel på subquery ser du här:

<code>
SELECT Ord.OrderID, Ord.OrderDate,
(SELECT MAX(OrdDet.UnitPrice)
FROM Northwind.dbo.[Order Details] AS OrdDet
WHERE Ord.OrderID = OrdDet.OrderID) AS MaxUnitPrice
FROM Northwind.dbo.Orders AS Ord
</code>


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 10:25:15 - Andreas Hillqvist

Du kan skriva så här:

SELECT Orderrader.Leveransdatum, Orderhuvud.Kundnr, -SUM(Orderrader.Artikelgrupp = 100) AS Antal_artiklar_artikelgrupp100, -SUM(Orderrader.Artikelgrupp = 200) AS Antal_artiklar_artikelgrupp200
FROM Orderrader LEFT JOIN Orderhuvud ON Orderrader.ordernr = Orderhuvud.ordernr
WHERE Orderrader.Artikelgrupp IN (100, 200)
GROUP BY Orderrader.Leveransdatum, Orderhuvud.Kundnr


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 10:27:58 - Andreas Hillqvist

Underfråger är något man bör undvika. Det är ofta långsamare än joins eftersom det är fråger som exetueras för varje rad. Om man använder sig av under fråger bör fält som ingår i vikoret var indexerade.


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 14:28:19 - Fredrik Henrysson

Hej Andreas,

Håller med dig om att underfrågor bör undvikas så långt det går.

Följande fungerar inte hos mig men det har säkert att göra med att jag ställer frågorna mot en AS/400 (den gillar inte =, vill bara ha "),.")

-SUM(Orderrader.Artikelgrupp = 100) AS Antal_artiklar_artikelgrupp100

Däremot använder jag mig nu av JOIN-satsen.

Tack för hjälpen i allafall!

//Fredrik


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 15:12:12 - Andreas Hillqvist

Du kunde ju sagt vilken databas du använde. Jag antog att det rörde sig om Access.

Varför kan du int plocka ut informationen radvis?

SELECT Orderrader.Leveransdatum, Orderhuvud.Kundnr, Orderrader.Artikelgrupp, COUNT(Orderrader.Artnr) AS Antal_artiklar_artikelgrupp
FROM Orderrader LEFT JOIN Orderhuvud ON Orderrader.ordernr = Orderhuvud.ordernr
GROUP BY Orderrader.Leveransdatum, Orderhuvud.Kundnr, Orderrader.Artikelgrupp


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 17:46:43 - Fredrik Henrysson

Hej igen,

Anledningen till att jag vill ha antalet per artikelgrupp i två kolumner istället för på två rader är att jag har två lagerområden som plockar varsin artikelgrupp. Då är det praktiskt om varje kolumn står för en artikelgrupp. Listan blir då kortare och man ser direkt hur mycket orderrader det ligger per lagerområde.

Löste detta genom att man får välja vilken artikelgrupp man vill se på.

Håller även på en hel del med Accessdatabaser och där har jag nytta av hela din förra lösning.

Ska fortsättningsvis bättra mig då det gäller att ange vilken databas jag behöver hjälp med.

//Fredrik


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-25 23:11:13 - Andreas Hillqvist

Eftersom det handlar om asp kan du hämta informationen radvis och skriva ut kolumnvis per datum och kund.


Svara

Sv: Slå ihop två SQL-satser till en....

Postades av 2003-08-26 09:06:58 - Fredrik Henrysson

Får man inte två rader per datum och kund då, eftersom man hämtar ut informationen radvis? En rad per artikelgrupp.

Jag skulle vilja ha de båda värdena på samma rad om jag ska lista detta i samma tabell.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 794
27 960
271 761
2 398
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies