Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πρόβλημα SELECT

Îåêßíçóå áðü ôï ìÝëïò Panos Kousidis. Τελευταία δημοσίευση από το μέλος Panos Kousidis στις 08-07-2007, 11:51. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  06-07-2007, 16:24 33432

    Πρόβλημα SELECT

    Έχω έναν πίνακα με τα εξής πεδία. Id,Value,Type
    Με ενδιαφέρει να βρω το άθροισμα των value αλλά θέλω value=value όταν type=1 και value=value*(-1) όταν type=2
    και αυτά ομαδοποιημένα ανα Id. Μπορεί να μου συντάξει κάποιος τη select γιατί έχω μπλεχτεί;

    Panos
  •  06-07-2007, 16:54 33433 σε απάντηση της 33432

    Απ: Πρόβλημα SELECT

    μπορείς να φτιάξεις μια function και να υπολογίσεις το sum με βάση αυτή. πχ:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    create function adjValue(@value int, @type int) returns int
    -- εγώ χρησιμοποιώ int. Αν χρειάζεται άλλαξέ το
    begin
    declare @retValue int

    if (@type = 1)
    @retvalue = @value
    else if (@type = 2)
    @retValue = - @value

    return @retValue
    end
    και μετά το query γράφεται απλά:
    1
    2
    3
    select sum(dbo.adjValue(value,type))
    from myTable
    group by id

  •  06-07-2007, 17:43 33434 σε απάντηση της 33432

    Απ: Πρόβλημα SELECT

    Εναλλακτικά χρησιμοποιείς το CASE

    select id, sum(Case When Type=1 Then Value Else value*(-1) End) from table group by id

    Manos
  •  08-07-2007, 11:51 33454 σε απάντηση της 33434

    Απ: Πρόβλημα SELECT

    Ευχαριστώ παιδιά, η λύση ήταν απλή τελικά εγώ προσπαθούσα να βρω τρόπο με Joins και unions κλπ...

    Panos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems