cyprysMedlem sedan dec. 20003 563 inlägg Jag har 3 st tabeller med bl.a. dessa fält:
... tbl_downloaded ... Alla nedladdningar
col_counts: 1 = den här nedladdningen ger pengar; 0 = Inte den här
col_counted = Kopplad till tbl_stat_payment.ID för varje utdelning som görs
col_payed = Är denna utdelning redan utbetald till författaren: 0 = nej; 1 = ja
| col_bookID | col_counts | col_counted | col_payed |
... tbl_books ... Alla böcker
col_writer = Kopplad till tbl_writer.ID eller är den ingående variabeln i denna funktion
| ID | col_writer |
... tbl_stat_payment ... Varje utdelning
För varje ny post här så sätts tbl_downloaded.col_counted = tbl_stat_payment.ID för poster som är obehandlade i tbl_downloaded
col_payment_each_download = Så här mycket ger en nedladdning som är gjort i denna tidsperiod.
| ID | col_payment_each_download |
Frågan funkar såhär. Jag vill ha reda på saldot för en författare / userID.
Jag börjar funktionen endast med ett författarID. Detta är detsamma som tbl_books.col_writer.
Vi ska gå igenom alla poster i tbl_downloaded där col_counts = 1, col_payed = 0, col_counted <> 0 samt att col_bookID är skriven av mitt userID.
Och för varje sådan post så ska vi köra värde (tbl_stat_payment.col_payment_each_download "ska hamna som slutresultat") där tbl_downloaded.col_counted = tbl_stat_payment.ID.
På svenska, för varje nedladdning som är valid "beskrivet ovan" så ska vi kolla upp hur mycket just den nedladdningen gav vi det tillfället och lägga till det till slutresultatet.
Och hur mycket den är värd står i tabell3 vars ID är kopplat till varje nedladdning genom col_counted.
För i slutändan vill jag bara ha ut en siffra som är hur mycket författaren har på kontot som är col_payed = 0.
En hel del info/rörigt :)
LarsGMedlem sedan dec. 200012 464 inlägg select sum(col_payment_each_download),b.col_writer_id
from (tbl_books b inner join tbl_downloaded td
on b.id = td.col_bookID ) inner join tbl_stat_payment p
on td.col_counted = p.id
where col_counts = 1
group by b.col_writer_id
EclipseMedlem sedan juli 20003 825 inlägg "En hel del info/rörigt "
- Det beror på att du har så röriga namn på dina fält!
Tips:
Sätt dig med penna och papper och skriv ner allt som du verkligen vill ha det.
Om du tycker det är rörigt nu hur ska det då inte vara sen när du ska in i din gamla kod och uppdatera...!?
Mera tips:
Döp inte tabellnamn och kolummer till namn som är specifika för just detta projektet. "writer" och "books" är två exempel som är jätte o-bra att använda för dom kan du inte använda i något annat projektl
Ännu mera tips:
Du nämner själv "Jag vill ha reda på saldot för en författare / userID. " Kör vidare på userID idéen! :--)
[users] - alla användare / författare
intID
strName
[products] - alla böckerna
intID
intUserID
cyprysMedlem sedan dec. 20003 563 inlägg
"En hel del info/rörigt"
Nja, Jag tycker inte det är rörigt. Jag hänvisade mest till min svenska, förklarande text och önskemål till er därjag fösökte vara så tydlig som möjligt.
Sätt dig med penna och papper och skriv ner allt som du verkligen vill ha det.
Räknade nu och hittade 24 nedkladdade collegeblocksidor fulla med relationer, sidor, design, funktioner och önskemål från dem som ska ha sidan. Jag åkte runt ca 80 mil fram och tillbaka innan jag skrev en rad kod.
Döp inte tabellnamn och kolummer till namn som är specifika för just detta projektet. "writer" och "books" är två exempel som är jätte o-bra att använda för dom kan du inte använda i något annat projektl
En aspekt jag inte riktigt kollat på förut då jag aldrig arbetat med samma application till flera projekt. assimilerat :)
[users] - alla användare / författare
intID
strName
[products] - alla böckerna
intID
intUserID
Det är ju så jag har. Nu var det bara inte bok-tabellen som var den primära.
Angående själva SQL-frågan som detta inlägg handlade om så hade jag redan en sådan fråga uppdelad på två frågor som fungerade, men jag vet att det går att få ner till en enkel vilket jag ville. Jag visste även att SQL-satsen skulle se ungefär som den jag fick av LarsG, men jag fick inte riktigt ihop det. Men nära var jag :)
Vad gäller övriga relationer så hade denna fråga varit lättare om man direkt kopplat userID till tbl_download men det är något av kaka på kaka, eftersom det ändå går att hämta ur en tabell kopplat till boken. Onödigt tycker jag att ha samma information på fler än ett ställe.
Men jag lyssnar Eclipse och tar emot av tipsen, tack! :)
Och LarsG, En klippa! :e