webForumDet fria alternativet
Logga in / Bli medlem

Kategorier

Databaser & SQL

4 svar · 241 visningar · startad av Palle

Medlem sedan apr. 20003 174 inlägg
Trådstart#1

Hej.

Sitter och fnular med en sql-sats som inte alls spelar på samma nivå som mig.. ;)
Jag behöver nu lite hjälp för att få ihop detta.

Databasen (mySQL) ser ut så här:

[b]tblProducts:[/b]
ID   |   fldProdName   |   fldProdInfo   |   fldProdID
-------------------------------------------------------
[blue]1[/blue]    |   Hårdvara      |   Lite info..   |   0
[blue]2[/blue]    |   Mjukvara      |   Lite info..   |   0
[red]3[/red]    |   Hårddisk      |   Lite info..   |   [blue]1[/blue]
[red]4[/red]    |   Photoshop     |   Lite info..   |   [blue]2[/blue]
[red]5[/red]    |   Moderkort     |   Lite info..   |   [blue]1[/blue]

[b]tblOrders:[/b]
ID   |   fldProdGroup  |   fldOrders   |   fldPrice   | fldDate
--------------------------------------------------------------------
1    |   [red]5[/red]             |   Order..     |    2000      | 2003-08-12
2    |   [red]4[/red]             |   Order..     |    1200      | 2003-08-20
3    |   [red]3[/red]             |   Order..     |    1140      | 2003-08-21
4    |   [red]3[/red]             |   Order..     |    1800      | 2003-08-29

Det jag nu försöker skapa är en fungerande sql-sats som hämtar värden samt summerar och räknar lite från dessa tabellerna.
Målet är att skapa en lista som loopas ut ungefär så här:

[red]
 Hårdvara - lite info..
 + Hårddisk - lite info..
   • [1]Senast någon beställde en hårddisk var 2003-08-29[/1]
   • [1]Antal beställda: 2st [/1]
   • [1]Total summa: 2940 kr[/1]
 + Moderkort - lite info..
   • [1]Senast någon beställde ett moderkort var 2003-08-12[/1]
   • [1]Antal beställda: 1st [/1]
   • [1]Total summa: 2000 kr[/1]
  
 Mjukvara - lite info..
 + Photoshop - lite info..
   • [1]Senast någon beställde Photoshop var 2003-08-20[/1]
   • [1]Antal beställda: 1st [/1]
   • [1]Total summa: 2000 kr[/1]
[/red]

Kan detta göras i 1st sql-sats eller måste jag nästla dem?
Hjälp mottages tacksamt. :e

 

Medlem sedan apr. 20003 174 inlägg
#2

Har jag förklarat mig luddigt eller är detta helt enkelt omöjligt att få ihop? :)

Medlem sedan juli 200012 978 inlägg
#3

Nä men stämmer data och resultat. Dvs kan man härleda det hela?

Medlem sedan apr. 20003 174 inlägg
#4

Jag har försökt att färga ID-relationerna som kopplar de olika värdena till
varandra i inlägget här ovan, kanske inte syns så tydligt?

Jag kan få resultatet med olika nästlade sql-satser, detta känns lite onödigt tror jag,
så det är därför jag vill ha lite hjälp att finna en enklare lösning. :)

Medlem sedan apr. 20003 174 inlägg
#5

Hmm, nu har jag lyckats sparka liv i en del av det. ;)

[red]SELECT p.ID, p.fldProdname, p.fldProdInfo, max(o.fldDate), count(o.ID), sum(o.fldPrice) 
FROM tblProducts p, tblOrders o 
WHERE p.fldProdID=0 AND o.fldProdGroup=p.ID 
GROUP BY p.ID, p.fldProdName, p.fldInfo[/red]

Den listar nu huvud-produktnamn, produktinfo, count, sum och datum rätt, där huvud-produktnamnet har fldProdID = 0.
Men jag får inte ut under-produktnamnen, listade under, som jag önskar, istället står där huvud-produktnamnen igen.

Ändrar/lägger jag till: p.fldProdID=p.ID ..så listas nada, njet och ingenting.

Några tips? :)

260 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
114 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)