Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: SQL Stored Prosedure ongelma

JeTTas [10.08.2005 20:00:37]

#

Moi
- Miten alla oleva UNION-kysely saadaan toimimaan Stored Proseduurissa?
- Miten saadaan WHERE:n lisättyä tai jätettyä pois Stored Proseduurista?
- Pitääkö WHERE-lause muodostaa Stored Proseduurissa tuomalla ko. muuttujat sinne?

Tässä viat ja vastaukset ovat eri tauluissa jotka pitäisi saada yhdistettyä
päivämäärän mukaan lajiteltuna,lisäksi auton tyyppi,malli ja rekisteritunnukset
ovat omissa taulukoissa sekä järjestelmä-taulukko (tblSysteemi) joka
kertoo mihin järjestelmään vika kuuluu, on tallennettu omaan taulukkoon.

Rekisteritunnusta ja järjestelmää yhdistää tblSysRek-taulukko (monta-Moneen yhteys)
eli yhdellä järjestelmällä voi olla monta rekisteritunnusta ja yksi rekisteritunnus
voi olla useammassa järjestelmässä.

Yhdistämisen jälkeen (Sijainti)-kentällä saadaan selville onko kysymyksessä vika
(tblVikaViesti.Sijainti) annetaan aina=1 vai vastaus (tblVastausViesti.Sijainti)=2.
- Olisiko muuta ideaa eroitella Viat ja vastaukset?

Olisihan se yksinkertaista yhdistää pelkät viat ja vastaustaulukot ja hakea eri
kyselyllä muut tiedot, mutta miten saan silloin laskettua tulostettavan tietuemäärän?
(Tietuejoukon sivuttaminen).

Toivottavasti ymmärsitte tämän sekavan sepustuksen, annan lisätietoja jos tarvitaan.

Kaikki vinkit otetaan ilomielin vastaan
KIITOS jo etukäteen sille joka vastaa tähän ongelmaan

t.jyrki

strUnion = "SELECT DISTINCT tblTyyppi.Tyyppi, tblMalli.Malli, tblRekisteri.Rekisteri, tblSysteemi.Syst_Nro, tblVikaViesti.Vika_ID, "
strUnion = strUnion & "tblVikaViesti.Sijainti, tblVikaViesti.Vika_Pvm, tblVastausViesti.Vika_ID AS Vastaus_ID "
strUnion = strUnion & "FROM tblTyyppi INNER JOIN "
strUnion = strUnion & "tblMalli ON tblTyyppi.Tyyppi_ID = tblMalli.Tyyppi_ID INNER JOIN "
strUnion = strUnion & "tblRekisteri ON tblMalli.Malli_ID = tblRekisteri.Malli_ID INNER JOIN "
strUnion = strUnion & "tblSysRek ON tblRekisteri.Rekisteri_ID = tblSysRek.Rekisteri_ID INNER JOIN "
strUnion = strUnion & "tblVikaViesti ON tblSysRek.SysRek_ID = tblVikaViesti.SysRek_ID INNER JOIN "
strUnion = strUnion & "tblSysteemi ON tblSysRek.System_ID = tblSysteemi.System_ID LEFT OUTER JOIN "'saadaan kaikki tblTyyppi-taulukosta
strUnion = strUnion & "tblVastausViesti ON tblVikaViesti.Vika_ID = tblVastausViesti.Vika_ID "

If strRekisteri <> "ALL" Then
	strUnion = strUnion & "WHERE tblRekisteri.Rekisteri ='"& strRekisteri &"' "
ElseIf strMalli <> "ALL" Then
	strUnion = strUnion & "WHERE tblMalli.Malli ='"& strMalli &"' "
ElseIf strTyyppi <> "ALL" Then
	strUnion = strUnion & "WHERE tblTyyppi.Tyyppi ='"& strTyyppi &"' "
End If

If strSysteemi <> "ALL" Then
	If strRekisteri <> "ALL" Or strMalli <> "ALL" Or strTyyppi <> "ALL" Then
		strUnion = strUnion & " AND tblSysteemi.Syst_Nro ='"& strSysteemi &"'"
	Else
		strUnion = strUnion & " WHERE tblSysteemi.Syst_Nro ='"& strSysteemi &"'"
	End If
End If

If intAikaJakso <> 0 Then
	If strRekisteri <> "ALL" Or strMalli <> "ALL" Or strTyyppi <> "ALL" Or strSysteemi <> "ALL" Then
		strUnion = strUnion & " AND tblVikaViesti.Vika_Pvm > GetDate()-" &intAikaJakso
	Else
		strUnion = strUnion & " WHERE tblVikaViesti.Vika_Pvm > GetDate()-" &intAikaJakso
	End If
End If

strUnion = strUnion & "UNION SELECT tblTyyppi.Tyyppi, tblMalli.Malli, tblRekisteri.Rekisteri, tblSysteemi.Syst_Nro, tblVastausViesti.Vika_ID, "
strUnion = strUnion & "tblVastausViesti.Sijainti, tblVastausViesti.Vastaus_Pvm, tblVastausViesti.Vastaus_ID "
strUnion = strUnion & "FROM tblTyyppi INNER JOIN "
strUnion = strUnion & "tblMalli ON tblTyyppi.Tyyppi_ID = tblMalli.Tyyppi_ID INNER JOIN "
strUnion = strUnion & "tblRekisteri ON tblMalli.Malli_ID = tblRekisteri.Malli_ID INNER JOIN "
strUnion = strUnion & "tblSysRek ON tblRekisteri.Rekisteri_ID = tblSysRek.Rekisteri_ID INNER JOIN "
strUnion = strUnion & "tblVikaViesti ON tblSysRek.SysRek_ID = tblVikaViesti.SysRek_ID INNER JOIN "
strUnion = strUnion & "tblVastausViesti ON tblVikaViesti.Vika_ID = tblVastausViesti.Vika_ID INNER JOIN "
strUnion = strUnion & "tblSysteemi ON tblSysRek.System_ID = tblSysteemi.System_ID "

If strRekisteri <> "ALL" Then
	strUnion = strUnion & "WHERE tblRekisteri.Rekisteri ='"& strRekisteri &"'"
ElseIf strMalli <> "ALL" Then
	strUnion = strUnion & "WHERE tblMalli.Malli ='"& strMalli &"' "
ElseIf strTyyppi <> "ALL" Then
	strUnion = strUnion & "WHERE tblTyyppi.Tyyppi ='"& strTyyppi &"' "
End If

If strSysteemi <> "ALL" Then
	If strRekisteri <> "ALL" Or strMalli <> "ALL" Or strTyyppi <> "ALL" Then
		strUnion = strUnion & " AND tblSysteemi.Syst_Nro ='"& strSysteemi &"'"
	Else
		strUnion = strUnion & " WHERE tblSysteemi.Syst_Nro ='"& strSysteemi &"'"
	End If
End If

If intAikaJakso <> 0 Then
	If strRekisteri <> "ALL" Or strMalli <> "ALL" Or strTyyppi <> "ALL" Or strSysteemi <> "ALL" Then
		strUnion = strUnion & " AND tblVastausViesti.Vastaus_Pvm > GetDate()-" &intAikaJakso
	Else
		strUnion = strUnion & " WHERE tblVastausViesti.Vastaus_Pvm > GetDate()-" &intAikaJakso
	End If
End If


strUnion = strUnion & " ORDER BY tblVikaViesti.Vika_Pvm DESC"
rsUnion.Open strUnion, objConn

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta