jag har den här frågan Nu är jag inte T-SQL expert, så det kanske finns någon annan som direkt kan se felet, men min approach skulle vara reducera problemet till ett par rader. Det går ju inte att felsöka hela denna sats. Fick det här svaret i ett annat forumProblem med sql-fråga
<code>
Select t.nummer,t.namn,l.namn as lag,
(case when m.spelar_ID=statistik.SpelarId then 1 else 0 end) as goals,
(case when m.ass_id=s.SpelarId then 1 else 0 end) + sum(case when m.ass_id1=statistik.SpelarId then 1 else 0 end) as ass,
(sum(case when m.spelar_ID=statistik.SpelarId then 1 else 0 end) + sum(case when m.ass_id=statistik.SpelarId then 1 else 0 end) + sum(case when m.ass_id1=statistik.SpelarId then 1 else 0 end)) as points
from statistik, matchfakta as m
left join trupper as t on statistik.spelarID = t.id
left join s_deltagande_lag as l on statistik.LagID = l.id
where statistik.spelarID in(m.spelar_id,m.ass_id,m.ass_id1)
and statistik.serieID =SerieID & " and m.serieID = SerieID & " and statistik.lagID=" & _visa & " and m.borttagen = 0 and m.vilken = 'goal'
group by statistik.spelarID,t.nummer,t.namn,l.namn
order by 6 desc, 4 desc
</code>
jag får det här felmeddelandet
<code>
System.Data.SqlClient.SqlException: The column prefix 'statistik' does not match with a table name or alias name used in the query.
</code>
Någons om vet vad som är fel?Sv: Problem med sql-fråga
Börja med minsta möjliga sats, typ den nedan, och bygg sedan på med rad-efter-rad för att identifiera när felet uppträder. Om inte ens nedanstående funkar så har iaf inte jag någon ide, annat än att tabellen inte finns...
<code>
Select *
from statistik
left join trupper as t on statistik.spelarID = t.id
</code>
När du hittar felet så kan du väl låta alla veta vad som var fel, så kanske vi också lär oss något.
/MattiasSv: Problem med sql-fråga
"Jag tycker mig ha upplevt att SQL server, helt icke standardmässigt, har problem om man blandar implicita och explicita joins."
kod som fungerar
<code>
Select t.nummer,t.namn,l.namn as lag,
(case when m.spelar_ID=statistik.SpelarId then 1 else 0 end) as goals,
(case when m.ass_id=s.SpelarId then 1 else 0 end) + sum(case when m.ass_id1=statistik.SpelarId then 1 else 0 end) as ass,
(sum(case when m.spelar_ID=statistik.SpelarId then 1 else 0 end) + sum(case when m.ass_id=statistik.SpelarId then 1 else 0 end) + sum(case when m.ass_id1=statistik.SpelarId then 1 else 0 end)) as points
from statistik inner join matchfakta as m
on statistik.spelarID in(m.spelar_id,m.ass_id,m.ass_id1)
left join trupper as t on statistik.spelarID = t.id
left join s_deltagande_lag as l on statistik.LagID = l.id
where statistik.serieID =SerieID & " and m.serieID = SerieID & " and statistik.lagID=" & _visa & " and m.borttagen = 0 and m.vilken = 'goal'
group by statistik.spelarID,t.nummer,t.namn,l.namn,m.spelar_id,m.ass_id,m.ass_id1
order by 6 desc, 4 desc
</code>