Permalänk
Medlem

SQL Group by från 2 kolumner

Hej!

Har stött på problem när jag försöker hämta data från min databas, och hittar inte svar någonstans online.

Har 2 tabeller på samma databas som jag vill hämta data ifrån med enbart en SQL query.
Tabellerna
Tabellen "race"

Tabellen "editdata"

SELECT DATE(raceDate) as raceDate, SUM(largeKart) as 'largeKart', SUM(smallKart) as 'smallKart', SUM(doubleKart) as 'doubleKart', (SUM(largeKart) + SUM(smallKart) + SUM(doubleKart)) as 'dayTotal', DATE(dateStamp) as 'dateStamp', dayTemp as 'dayTemp', dayWeather as 'dayWeather' FROM race, editdata WHERE ? <= date(raceDate) and ? >= date(raceDate) GROUP BY DATE(raceDate),DATE(dateStamp)

Detta är dock svaret jag får. Jag vill ha dom grupperade efter datum. Alltså vill jag bara ha tillbaka 2 rader, inte 4

Permalänk

@Foxmaner:
Testa detta.
Har säkert missat några kolumförändringar men sätt bara a. och b. för respektive

SELECT DATE(raceDate) as raceDate,
SUM(largeKart) as 'largeKart',
SUM(smallKart) as 'smallKart',
SUM(doubleKart) as 'doubleKart',
(SUM(largeKart) + SUM(smallKart) + SUM(doubleKart)) as 'dayTotal',
DATE(dateStamp) as 'dateStamp',
dayTemp as 'dayTemp',
dayWeather as 'dayWeather' FROM race a
left join editdata b on date(a.raceDate) = date(b.datestamp)
GROUP BY DATE(raceDate),DATE(dateStamp)

Permalänk
Medlem
Skrivet av trashlight:

@Foxmaner:
Testa detta.
Har säkert missat några kolumförändringar men sätt bara a. och b. för respektive

SELECT DATE(raceDate) as raceDate,
SUM(largeKart) as 'largeKart',
SUM(smallKart) as 'smallKart',
SUM(doubleKart) as 'doubleKart',
(SUM(largeKart) + SUM(smallKart) + SUM(doubleKart)) as 'dayTotal',
DATE(dateStamp) as 'dateStamp',
dayTemp as 'dayTemp',
dayWeather as 'dayWeather' FROM race a
left join editdata b on date(a.raceDate) = date(b.datestamp)
GROUP BY DATE(raceDate),DATE(dateStamp)

Tusen tack! Funkar nu exakt som jag vill Höll på att bli galen där ett tag

Permalänk
Skrivet av Foxmaner:

Tusen tack! Funkar nu exakt som jag vill Höll på att bli galen där ett tag

Ingen fara alls

När man skriver fler tables i from med komma mellan så appliceras alla rader i båda tabellerna på varandra och så skriver man wheresatsen mot det. En join applicerar istället enbart raderna där on - villkoret passar.

Lycka till med körandet!