Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med SQLfråga

Postades av 2006-08-24 22:20:49 - Magnus Hallberg, i forum sql-server/msde, Tråden har 7 Kommentarer och lästs av 938 personer

jag har fölajande tabeller. members, cars och carsPic. Det är möjligt för användare som är registrerade alltså finns i tabellen members att ha flera bilar som lagras i cars, men man behöver inte ha någon bil. Vidare är det möjligt att ha flera kort på samma bil i tabellen carPics, men man behöver inte ha nåt kort på bilen.

det jag vill göra är att plocka ut alla medlemmar samt bilnamnet från "cars" och bildnamnen från "carPics", går det? Jag har försökt med alla möjliga frågor men då en medlem har två bilar upprepas namnet två gånger. Har sen medlemen tre bilder på en av bilarna så upprepas det tre gånger.

Min sp ser ut så här nu
<code>
SELECT DISTINCT m.*, c.carName, cp.picName, mp.picName FROM members AS m

LEFT OUTER JOIN car AS c
ON m.userName = c.userName

LEFT OUTER JOIN carPhoto AS cp
ON m.userName = cp.userName AND cp.carID = c.carID

INNER JOIN memberPics AS mp
ON m.userName = mp.userName
</code>

Glömde tabellen memberPics men den ställer inte till något då varje medlem bara kan ha en bil i den tabellen.


Svara

Sv: Problem med SQLfråga

Postades av 2006-08-25 00:00:56 - Göran Andersson

Naturligtvis upprepas medlemmen för varje rad som har med medlemmen att göra, och bilen för varje rad som har med bilen att göra, du kan ju inte hämta ett resultat där en medlemspost sträcker sig över flera rader.

Hur vill du ha ut resultatet?


Svara

Sv:Problem med SQLfråga

Postades av 2006-08-25 00:10:26 - Magnus Hallberg

Jag vill ha ut alla medlemmar oavsett om de har bil eller inte. Jag vill ha ut alla bilar som hör till en medlem. Jag vill ha ut alla bilder på varje bil.


Svara

Sv: Problem med SQLfråga

Postades av 2006-08-25 09:41:33 - Göran Andersson

Ja, då får du antingen hantera resultatet som det ser ut, eller hämta ut bilarna och bilderna i separata resultat.


Svara

Sv: Problem med SQLfråga

Postades av 2006-08-25 09:42:52 - Jonas Hallgren

Om det inte duger med att få en massa upprepningar så måste du ändra din strategi i din applikation. Tex kan du lista alla medlemmar och loopa dig igenom och hämta bilar och i en subloop hämta alla relevanta bilder. Annars så är det som Göran säger självklart att det blir som du beskriver.

Vill du lista medlemmar och joina på bilar så kommer en medlem med 2 bilar generera 2 rader med samma medlem och respektive bil. Hur skall man annars veta att dom hör ihop?

/Jonas


Svara

Sv:Problem med SQLfråga

Postades av 2006-08-25 10:04:45 - Magnus Hallberg

Nä, det är sant som ni säger.

Går det på nåt sätt att ange en variabel som får ett värde säg 1 om medlemmen har nån bil? Jag behöver alltså inte ta ut namn eller bild på bilen. Om det går kan jag ju ange med ett liten grön bock eller på på sidan att medlemmen har bil och en länk till en bilsida.


Svara

Sv: Problem med SQLfråga

Postades av 2006-08-25 14:48:16 - Göran Andersson

Räkna hur många bilar användarna har:

select m.*, isnull(count(c.UserName),0) as cars
from members m
left join car c on c.userName = m.userName
group by m.*


Svara

Sv:Problem med SQLfråga

Postades av 2006-08-26 00:36:05 - Magnus Hallberg

Tackar Göran, det löste sig med din hjälp IGEN :)

Jag löste det så här.
SP
<code>
ALTER PROCEDURE [dbo].[getAllMembers]

AS
SELECT m.*, mp.picName, ISNULL(COUNT(c.UserName),0) AS cars
FROM members m

LEFT JOIN car c
ON c.userName = m.userName

INNER JOIN memberpics mp
ON m.userName = mp.userName

GROUP BY m.memberID, m.userName, m.fName, m.lName, m.address, m.zipCode,
m.city, m.phone, m.cellPhone, mp.picName

ORDER BY m.fName
</code>

.NET-koden
<code>
public string checkIfCar(object dataItem)
{
int haveCar = Int32.Parse(DataBinder.Eval(dataItem, "cars").ToString());
if (haveCar == 0)
return " har " + haveCar + " bilar.";
else if (haveCar > 1)
return " har " + haveCar + " bilar. SE BILAR";
else
return " har " + haveCar + " bil. SE BIL";
}
</code>

HTML sidan
<code>
<%# checkIfCar(Container.DataItem)%>
</code>

På detta sätt får jag ju ut alla medlemmar samt om de har bil eller inte. Jag får också ut bilden på medlemmen.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 617
27 953
271 709
5 749
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies